using System.Collections.Generic;
using System.Windows.Input;

namespace ZadaniaWPF.ModelWidoku
{
    //using static ZadaniaWPF.Model.PlikXml;

    public class Zadania
    {
        private const string ścieżkaPlikuXml = "zadania.xml";

        private Model.Zadania modelZapis;

        public ZadaniaZapis Zapis { get; private set; }
        public ZadaniaOdczyt Odczyt { get; private set; }

        /*
        public Zadania()
        {
            Model.ZadaniaOdczyt modelOdczyt = new Model.ZadaniaOdczyt();

            modelZapis = new Model.Zadania(
                (string ścieżkaPliku, IEnumerable<Model.Zadanie> _zadania) =>
                {
                    Zapisz(ścieżkaPliku, _zadania);
                }, new Model.SzynaZdarzeń(modelOdczyt));
            //if (System.IO.File.Exists(ścieżkaPlikuXml))
            //{
                //IEnumerable<Model.Zadanie> zadania = Czytaj(ścieżkaPlikuXml);
                IEnumerable<Model.Zadanie> zadania = Model.UsługaRest.CzytajWszystkie();
                foreach (Model.Zadanie zadanie in zadania) modelZapis.DodajZadanie(zadanie);
            //}

            Zapis = new ZadaniaZapis(new Model.DyspozytorPoleceńDlaZadań(modelZapis));
            Odczyt = new ZadaniaOdczyt(modelOdczyt);
        }
        */

        public Zadania()
        {
            Model.ZadaniaOdczyt modelOdczyt = new Model.ZadaniaOdczyt();

            modelZapis = new Model.Zadania(new Model.SzynaZdarzeń(modelOdczyt));
            IEnumerable<Model.Zadanie> zadania = Model.UsługaRest.CzytajWszystkie();
            foreach (Model.Zadanie zadanie in zadania) modelZapis.DodajZadanie(zadanie, false);

            Zapis = new ZadaniaZapis(new Model.DyspozytorPoleceńDlaZadań(modelZapis));
            Odczyt = new ZadaniaOdczyt(modelOdczyt);
        }

        /*
        private ICommand zapiszCommand;

        public ICommand Zapisz
        {
            get
            {
                if (zapiszCommand == null)
                    zapiszCommand = new RelayCommand(
                        argument =>
                        {
                            modelZapis.Zapisz(ścieżkaPlikuXml);
                        });
                return zapiszCommand;
            }
        }
        */
    }
}
