using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ZadaniaUsługaRest.Controllers
{
    using Models;
    using ZadaniaWPF.Model; //przestrzeń nazw w podlinkowanym pliku Models\Zadanie.cs

    [RoutePrefix("api/zadania")]
    public class ZadaniaController : ApiController
    {
        public string Get()
        {
            return "Usługa jest aktywna";
        }

        public const string nazwaPlikuXml = @"c:\Users\jacek\Documents\Visual Studio 2017\Projects\ZadaniaWPF\ZadaniaWPF\bin\Debug\zadania.xml";
        Zadania model = new Zadania(nazwaPlikuXml, true);

        [HttpGet]
        [Route("liczba")]
        public int PobierzLiczbę()
        {
            return model.Liczba;
        }

        [HttpGet]
        [Route("wszystkie")]
        public Zadanie[] PobierzWszystkie()
        {
            return model.PobierzWszystkie();
        }

        [HttpGet]
        [Route("{indeks}")]
        [Route("indeks/{indeks}")]
        public Zadanie Pobierz(int indeks)
        {
            if (indeks < 0 || indeks >= model.Liczba)
                throw new Exception("Niepoprawny indeks zadania");
            return model[indeks];
        }

        [HttpPost]
        [Route("dodaj")]
        public void Dodaj(Zadanie zadanie)
        {
            model.DodajZadanie(zadanie);
        }

        [HttpDelete]
        [Route("usun/{indeks}")]
        public void Usuń(int indeks)
        {
            model.UsuńZadanie(indeks);
        }

        /*
        [HttpPost]
        [Route("usun")]
        public void Usuń(Zadanie zadanie)
        {
            model.UsuńZadanie(zadanie);
        }
        */

        [HttpDelete]
        [Route("usun")]
        public void Usuń(Zadanie zadanie)
        {
            model.UsuńZadanie(zadanie);
        }
    }
}
