public void UnitTestOpisStanuCSV()
        {
            DataContext data = new DataContext();

            graf.fillIn(data);
            DataRepository repo     = new DataRepository(data);
            ZapisCSV       zapisCSV = new ZapisCSV(repo);

            DataContext    data2        = new DataContext();
            DataRepository repo2        = new DataRepository(data2);
            WczytanieCSV   wczytanieCSV = new WczytanieCSV(repo2);

            zapisCSV.SaveOpisStanu(repo.GetAllOpisStanu(), "OpisStanuTest.csv");

            wczytanieCSV.ReadOpisStanu("OpisStanuTest.csv");

            Assert.AreEqual(repo.GetAllOpisStanu().Count, repo2.GetAllOpisStanu().Count);
            Assert.AreEqual(repo.GetAllOpisStanu()[0], repo2.GetAllOpisStanu()[0]);
            Assert.AreEqual(repo.GetAllOpisStanu()[1], repo2.GetAllOpisStanu()[1]);
        }
        public void UnitTestClientCSV()
        {
            DataContext data = new DataContext();

            graf.fillIn(data);
            DataRepository repo     = new DataRepository(data);
            ZapisCSV       zapisCSV = new ZapisCSV(repo);

            DataContext    data2        = new DataContext();
            DataRepository repo2        = new DataRepository(data2);
            WczytanieCSV   wczytanieCSV = new WczytanieCSV(repo2);

            zapisCSV.SaveClient(repo.GetAllClient(), "ClientTest.csv");

            wczytanieCSV.ReadClient("ClientTest.csv");


            Assert.AreEqual(repo.GetAllClient().Count, repo2.GetAllClient().Count);
            Assert.AreEqual(data.clientList[0], data2.clientList[0]);
            Assert.AreEqual(data.clientList[1], data2.clientList[1]);
        }
        public void UnitTestKatalogCSV()
        {
            DataContext data = new DataContext();

            graf.fillIn(data);
            DataRepository repo     = new DataRepository(data);
            ZapisCSV       zapisCSV = new ZapisCSV(repo);

            DataContext    data2        = new DataContext();
            DataRepository repo2        = new DataRepository(data2);
            WczytanieCSV   wczytanieCSV = new WczytanieCSV(repo2);

            zapisCSV.SaveKatalog(repo.GetAllKatalog().Values, "KatalogTest.csv");

            wczytanieCSV.ReadKatalog("KatalogTest.csv");


            Assert.AreEqual(repo.GetAllKatalog().Count, repo2.GetAllKatalog().Count);
            Assert.AreEqual(repo.GetAllKatalog()[0], repo2.GetAllKatalog()[0]);
            Assert.AreEqual(repo.GetAllKatalog()[1], repo2.GetAllKatalog()[1]);
        }
        public void UnitTestZdarzeniaCSV()
        {
            DataContext data = new DataContext();

            graf.fillIn(data);
            DataRepository repo     = new DataRepository(data);
            ZapisCSV       zapisCSV = new ZapisCSV(repo);

            DataContext    data2        = new DataContext();
            DataRepository repo2        = new DataRepository(data2);
            WczytanieCSV   wczytanieCSV = new WczytanieCSV(repo2);

            zapisCSV.SaveSprzedazZdarzenia(repo.GetAllZdarzenia().Where(a => a.GetType() == typeof(Sprzedaz)), "ZdarzeniaSprzedazTest.csv");
            zapisCSV.SaveZakupZdarzenia(repo.GetAllZdarzenia().Where(a => a.GetType() == typeof(Zakup)), "ZdarzeniaZakupTest.csv");

            wczytanieCSV.ReadZdarzeniaSprzedaz("ZdarzeniaSprzedazTest.csv");
            wczytanieCSV.ReadZdarzeniaZakup("ZdarzeniaZakupTest.csv");

            Assert.AreEqual(repo.GetAllZdarzenia().Count, repo2.GetAllZdarzenia().Count);
            Assert.AreEqual(repo.GetAllZdarzenia()[0], repo2.GetAllZdarzenia()[0]);
            Assert.AreEqual(repo.GetAllZdarzenia()[1], repo2.GetAllZdarzenia()[1]);
        }
        public static void Main(string[] args)
        {
            DataContext    data     = new DataContext();
            DataContext    data2    = new DataContext();
            DataRepository repo     = new DataRepository(data);
            DataRepository repo2    = new DataRepository(data2);
            Katalog        kat1     = new Katalog("Antygona", new AutorKsiazki("Sofokles", ""));
            Katalog        kat2     = new Katalog("Potop", new AutorKsiazki("Henryk", "Sienkiewicz"));
            Client         c1       = new Client(1, "Adam", "Małysz");
            Client         c2       = new Client(2, "Szymon", "Maj");
            OpisStanu      opis1    = new OpisStanu(1, kat1, 2, 20);
            OpisStanu      opis2    = new OpisStanu(2, kat2, 4, 40);
            Zdarzenie      zakup    = new Zakup(1, opis1, 1, 20, DateTime.ParseExact("2018.12.12", "yyyy.MM.dd", CultureInfo.CurrentCulture));
            Zdarzenie      sprzedaz = new Sprzedaz(2, opis1, 2, 30, c1, DateTime.ParseExact("2018.11.07", "yyyy.MM.dd", CultureInfo.CurrentCulture));

            repo.AddKatalog(kat1);
            repo.AddKatalog(kat2);
            repo.AddClient(c1);
            repo.AddClient(c2);
            repo.AddOpisStanu(opis1);
            repo.AddOpisStanu(opis2);

            repo.AddZdarzenie(sprzedaz);
            repo.AddZdarzenie(zakup);

            FileOperations fileOp       = new FileOperations();
            ZapisCSV       zapisCSV     = new ZapisCSV(repo);
            WczytanieCSV   wczytanieCSV = new WczytanieCSV(repo2);
            int            n;
            int            m;
            String         str;

Start:
            Console.WriteLine("Wybierz co chcesz zrobic?\n" +
                              "1. Zapis\n" +
                              "2. Odczyt\n" +
                              "3. Wypisz wszystko z wczytanego repozytorium\n" +
                              "0. Exit");
            str = Console.ReadLine();
            n   = int.Parse(str);
            switch (n)
            {
            case 1:
                Console.WriteLine("jestes w zapisie");
                Console.WriteLine("Wybierz co chcesz zrobic?\n" +
                                  "1. Do CSV\n" +
                                  "2. Do Jsona");
                str = Console.ReadLine();
                m   = int.Parse(str);
                switch (m)
                {
                case 1:

                    zapisCSV.Save();
                    Console.WriteLine("Zapisano do csv");
                    Console.Read();
                    break;

                case 2:


                    fileOp.AllToJson(repo, "Clients.json", "Katalogi.json", "OpisStanu.json", "Zdarzenia.json");
                    Console.WriteLine("Zapisano do jsona");
                    Console.Read();
                    break;
                }
                Console.Read();
                break;

            case 2:
                Console.WriteLine("jestes w odczycie");
                Console.WriteLine("Odczyt:\n" +
                                  "1. Z CSV\n" +
                                  "2. Z Jsona");
                str = Console.ReadLine();
                m   = int.Parse(str);
                switch (m)
                {
                case 1:

                    wczytanieCSV.Read();
                    Console.WriteLine("Odczytano z csv");

                    Console.Read();
                    break;

                case 2:
                    Console.WriteLine("Odczytano z jsona");
                    repo2.setClientsList(fileOp.loadClientFromJson("Clients.json"));
                    repo2.setKatalogDict(fileOp.loadKatalogFromJson("Katalogi.json"));
                    repo2.setOpisStanuList(fileOp.loadOpisStanuFromJson("OpisStanu.json"));
                    repo2.setZdarzeniaList(fileOp.loadZdarzeniaFromJson("Zdarzenia.json"));
                    DuplicateExecutor.duplicateDelete(repo2.GetDataContext());

                    Console.Read();
                    break;
                }
                Console.Read();
                break;

            case 3:
                wypiszWszystko(repo2);
                break;

            case 0:
                Environment.Exit(0);
                break;

            default:
                Console.WriteLine("Nic nie wybrales");
                goto Start;
            }
            goto Start;
        }