public void FillTest()
        {
            int ile = 15;

            Baza b1 = new Baza();
            int ksPrzed = b1.LiczbaKsiazek;
            int czPrzed = b1.LiczbaCzytelnikow;
            int wyPrzed = b1.LiczbaWypozyczen;

            b1.Filler = new RandomFiller(ile);
            b1.UseFiller();
            int ksPo = b1.LiczbaKsiazek;
            int czPo = b1.LiczbaCzytelnikow;
            int wyPo = b1.LiczbaWypozyczen;

            Baza b2 = new Baza(new RandomFiller(ile));

            Assert.AreEqual(ksPo , b2.LiczbaKsiazek);
            Assert.AreEqual(czPo , b2.LiczbaCzytelnikow);
            Assert.AreEqual(wyPo , b2.LiczbaWypozyczen);

            Assert.AreEqual(ksPo-ksPrzed, ile);
            Assert.AreEqual(czPo - czPrzed, ile);
            Assert.AreEqual(wyPo - wyPrzed, ile);
        }
        public void GetBookByIdTest()
        {
            Baza b = new Baza(new RandomFiller(15));
            var ks = new Ksiazka(43, "K");
            b.Add(ks);

            Ksiazka wyluskana = b.GetBookById(43);
            Assert.AreEqual(ks, wyluskana);
        }
        public void AddKsiazkaTest()
        {
            Baza baza = new Baza();
            Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");

            int expected = baza.LiczbaKsiazek + 1;
            baza.Add(ks);
            int result = baza.LiczbaKsiazek;

            Assert.AreEqual(expected, result);
        }
        public void AddCzytelnikTest()
        {
            Baza baza = new Baza();
            Czytelnik czyt = new Czytelnik("Adam", "Telekomunista");

            int expected = baza.LiczbaCzytelnikow + 1;
            baza.Add(czyt);
            int result = baza.LiczbaCzytelnikow;

            Assert.AreEqual(expected, result);
        }
        public void AddWypozyczenieTest()
        {
            Baza baza = new Baza();
            Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");
            Czytelnik czyt = new Czytelnik("Adam", "Telekomunista");

            int expected = baza.LiczbaWypozyczen + 1;
            baza.Add(new Wypozyczenie(ks, czyt));
            int result = baza.LiczbaWypozyczen;

            Assert.AreEqual(expected, result);
        }
 public void AnulujWypozyczenieNrTest()
 {
     Baza b = new Baza();
     Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");
     Czytelnik czyt1 = new Czytelnik("Adam", "Telekomunista");
     Czytelnik czyt2 = new Czytelnik("Adam", "Technologik");
     Wypozyczenie wyp1 = new Wypozyczenie(ks, czyt1);
     Wypozyczenie wyp2 = new Wypozyczenie(ks, czyt2);
     b.Add(wyp1);
     b.Add(wyp2);
     Assert.AreNotEqual(b.GetRentByNumber(0), wyp2);
     Assert.AreEqual(b.GetRentByNumber(1), wyp2);
     b.AnulujWypozyczenieNr(0);
     Assert.AreEqual(b.GetRentByNumber(0), wyp2); //Drugi element przesuniety na miejsce pierwszego, usunietego.
 }
        public ViewModelMainWindow()
        {
            Baza = new Baza(new RandomFiller(30), new XmlSerial("XML.xml"));

            AddReaderClicked = new RelayCommand(OpenReaderAdder);
            EditReaderClicked = new RelayCommand(OpenReaderEditor);
            RemoveReaderClicked = new RelayCommand(RemoveReader);

            AddBookClicked = new RelayCommand(OpenBookAdder);
            EditBookClicked = new RelayCommand(OpenBookEditor);
            RemoveBookClicked = new RelayCommand(RemoveBook);

            AddBorrowClicked = new RelayCommand(OpenBorrowAdder);
            RemoveBorrowClicked = new RelayCommand(RemoveBorrow);

            ExitClicked = new RelayCommand(Exit);
            SaveLoadClicked = new RelayCommand(OpenSaveLoad);
        }
        static void Main(string[] args)
        {
            IBase baza = new Baza(new MassFiller(15));
            //baza.Add(new Czytelnik("a", "k", 333));
            Inputter inp = new Inputter();
            baza.AnulujWypozyczenieNr(0);
            //baza.Write();
            Console.WriteLine();
            Console.WriteLine("print, stat, +reader, -reader, +book, -book, +rent, -rent");
            string wybor;
            while (true) {
                Console.WriteLine("\nWybierz komende:");
                wybor = Console.ReadLine();
                if (wybor == "STOP" || wybor == "stop") {
                    Console.WriteLine("Stop.");
                    break;
                }
                switch (wybor) {
                    case "print":
                        baza.Write();
                        break;

                    case "stat":
                        Console.WriteLine("Liczba ksiazek: " + baza.LiczbaKsiazek);
                        Console.WriteLine("Liczba czytalnikow: " + baza.LiczbaCzytelnikow);
                        Console.WriteLine("Liczba wypozyczen: " + baza.LiczbaWypozyczen);
                        break;

                    case "+reader":
                        Console.Write("Imie: ");
                        string imie = Console.ReadLine();
                        Console.Write("Nazwisko: ");
                        string nazwisko = Console.ReadLine();
                        int id = -1;
                        if (!inp.GetInt("ID (nonpositive to get receive automatically): ", out id)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        if (id<0)
                            baza.Add(new Czytelnik(imie, nazwisko));
                        else {
                            Console.WriteLine(id);
                            try {
                                Czytelnik nowy = new Czytelnik(imie, nazwisko, id);
                                baza.Add(nowy);
                            } catch (Exception e) {
                                Console.WriteLine(e.Message);
                                break;
                            }

                        }

                        break;

                    case "-reader":
                        int idr;
                        if (!inp.GetInt("ID (nonpositive will cancel): ", out idr)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        if (idr < 0)
                            break;
                        else {
                            try {
                                baza.RemoveReaderWithId(idr);
                            } catch (Exception e) {
                                Console.WriteLine(e.Message);
                                break;
                            }
                        }

                        break;

                    case "+book":
                        Console.Write("Tytul: ");
                        string tutul = Console.ReadLine();
                        int idb;
                        if (!inp.GetInt("ID: ", out idb) || idb < 0) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        try{
                            baza.Add(new Ksiazka(idb, tutul));
                        } catch (ArgumentException ae) {
                            Console.WriteLine(ae.Message + " Wcześniej.");
                        }

                        break;

                    case "-book":
                        int idb2;
                        if (!inp.GetInt("ID: ", out idb2)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }

                        baza.RemoveBookWithId(idb2);
                        break;

                    case "+rent":
                        int ksID, czID;
                        if (!inp.GetInt("Book ID: ", out ksID)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }

                        if (!inp.GetInt("Reader ID: ", out czID)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        try {
                            baza.Add(new Wypozyczenie(baza.GetBookById(ksID), baza.GetReaderById(czID)));
                        } catch (KeyNotFoundException ke) {
                            Console.WriteLine(ke.Message);
                        }
                        break;

                    case "-rent":
                        int wypID;
                        if (!inp.GetInt("Number of Rent Receipt on the list: ", out wypID)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        baza.AnulujWypozyczenieNr(wypID);
                        break;
                }
            }
        }
 public void MassFillTest100000()
 {
     Baza b = new Baza(new MassFiller(100000));
     Assert.IsTrue(true);
 }
        static void Main(string[] args)
        {
            IBase baza = new Baza(new RandomFiller(30));
            baza.Add(new Borrow(baza.GetBookById(3), baza.GetReaderById(3)));
            baza.Add(new Borrow(baza.GetBookById(3), baza.GetReaderById(3)));
            /*var dist = baza.GetDistinctBorrows();
            foreach (var bor in dist) Console.WriteLine("DISTINCT: " + bor);*/
            Inputter inp = new Inputter();
            baza.AnulujWypozyczenieNr(0);
            //baza.Write();
            Console.WriteLine();
            Console.WriteLine("print, stat, +reader, -reader, +book, -book, +borrow, -borrow, stop,");
            Console.WriteLine("bookswithtitle, bookswithyear, readerswithborrows, latestbook, distinctborrows");
            string wybor;
            while (true) {
                Console.WriteLine("\nWybierz komende:");
                wybor = Console.ReadLine();
                if (wybor == "STOP" || wybor == "stop") {
                    Console.WriteLine("Stop.");
                    break;
                }
                switch (wybor) {
                    case "print":
                        baza.Write();
                        break;

                    case "stat":
                        Console.WriteLine("Liczba ksiazek: " + baza.LiczbaKsiazek);
                        Console.WriteLine("Liczba czytalnikow: " + baza.LiczbaCzytelnikow);
                        Console.WriteLine("Liczba wypozyczen: " + baza.LiczbaWypozyczen);
                        break;

                    case "+reader":
                        Console.Write("Imie: ");
                        string imie = Console.ReadLine();
                        Console.Write("Nazwisko: ");
                        string nazwisko = Console.ReadLine();
                        int id = -1;
                        if (!inp.GetInt("ID (nonpositive to get receive automatically): ", out id)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        if (id<0)
                            baza.Add(new Reader(imie, nazwisko));
                        else {
                            Console.WriteLine(id);
                            try {
                                Reader nowy = new Reader(imie, nazwisko, id);
                                baza.Add(nowy);
                            } catch (Exception e) {
                                Console.WriteLine(e.Message);
                                break;
                            }

                        }

                        break;

                    case "-reader":
                        int idr;
                        if (!inp.GetInt("ID (nonpositive will cancel): ", out idr)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        if (idr < 0)
                            break;
                        else {
                            try {
                                baza.RemoveReaderWithId(idr);
                            } catch (Exception e) {
                                Console.WriteLine(e.Message);
                                break;
                            }
                        }

                        break;

                    case "+book":
                        Console.Write("Tytul: ");
                        string tutul = Console.ReadLine();
                        int idb;
                        if (!inp.GetInt("ID: ", out idb) || idb < 0) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        try{
                            baza.Add(new Book(idb, tutul));
                        } catch (ArgumentException ae) {
                            Console.WriteLine(ae.Message + " Wcześniej.");
                        }

                        break;

                    case "-book":
                        int idb2;
                        if (!inp.GetInt("ID: ", out idb2)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }

                        baza.RemoveBookWithId(idb2);
                        break;

                    case "+borrow":
                        int ksID, czID;
                        if (!inp.GetInt("Book ID: ", out ksID)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }

                        if (!inp.GetInt("Reader ID: ", out czID)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        try {
                            baza.Add(new Borrow(baza.GetBookById(ksID), baza.GetReaderById(czID)));
                        } catch (KeyNotFoundException ke) {
                            Console.WriteLine(ke.Message);
                        }
                        break;

                    case "-borrow": {
                            int wypID;
                            if (!inp.GetInt("Number of Borrow Receipt on the list: ", out wypID)) {
                                Console.WriteLine("Invalid number");
                                break;
                            }
                            baza.AnulujWypozyczenieNr(wypID);
                        }
                        break;

                    case "bookswithtitle":{
                        Console.Write("Title of the book: ");
                        string title = Console.ReadLine();
                        var ksiazki = baza.GetBooksWithSpecifiedTitle(title);
                        foreach (var k in ksiazki)
                            Console.WriteLine(k);
                        }
                        break;

                    case "bookswithyear": {
                        int minYear, maxYear;
                        if (!inp.GetInt("Minimum issue year: ", out minYear)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }

                        if (!inp.GetInt("Maximum issue year: ", out maxYear)) {
                            Console.WriteLine("Invalid number");
                            break;
                        }
                        var ksiazki = baza.GetBooksWithSpecifiedIssueYear(minYear, maxYear);
                        foreach (var k in ksiazki)
                            Console.WriteLine(k);
                        }
                        break;

                    case "readerswithborrows": {
                        var readers = baza.GetReadersWithBorrows();
                            foreach (var k in readers)
                                Console.WriteLine(k + " (" + k.Borrows.Count + " borrows)");
                        }
                        break;

                    case "latestbook":
                        Console.WriteLine(baza.GetLatestBook());
                        break;

                    case "distinctborrows": {
                        var borrows = baza.GetDistinctBorrows();
                            foreach (var k in borrows)
                                Console.WriteLine(k.Ksiazka + " -> " + k.Czytelnik );
                        }
                        break;
                }
            }
        }
 public void GetRentByNumberTest()
 {
     Baza b = new Baza();
     Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");
     Czytelnik czyt1 = new Czytelnik("Adam", "Telekomunista");
     Czytelnik czyt2 = new Czytelnik("Adam", "Technologik");
     Wypozyczenie wyp1 = new Wypozyczenie(ks, czyt1);
     Wypozyczenie wyp2 = new Wypozyczenie(ks, czyt2);
     b.Add(wyp1);
     b.Add(wyp2);
     Assert.AreEqual(b.GetRentByNumber(0), wyp1);
     Assert.AreNotEqual(b.GetRentByNumber(0), wyp2);
     Assert.AreEqual(b.GetRentByNumber(1), wyp2);
 }
        public void GetReaderByIdTest()
        {
            Baza b = new Baza(new RandomFiller(15));
            Czytelnik czyt = new Czytelnik("J", "K", 500);
            b.Add(czyt);

            Czytelnik wyluskany = b.GetReaderById(500);
            Assert.AreEqual(czyt, wyluskany);
        }
 public void RemoveWypozyczenieTest()
 {
     Baza baza = new Baza();
     Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");
     Czytelnik czyt = new Czytelnik("Jan", "Nowak");
     Wypozyczenie wyp = new Wypozyczenie(ks, czyt);
     baza.Add(wyp);
     int start = baza.LiczbaWypozyczen;
     baza.Remove(wyp);
     int end = baza.LiczbaWypozyczen;
     Assert.AreEqual(end, start - 1);
 }
        public void RemoveReaderWithIdTest()
        {
            Baza b = new Baza(new RandomFiller(15));
            Czytelnik czyt = new Czytelnik("J", "K", 1000);
            b.Add(czyt);

            Czytelnik wyluskany = b.GetReaderById(1000);
            Assert.AreEqual(czyt, wyluskany);

            b.RemoveReaderWithId(1000);
            var wyluskany2 = b.GetReaderById(1000);
        }
 public void RemoveKsiazkaTest()
 {
     Baza baza = new Baza();
     Ksiazka ks = new Ksiazka(123, "Ogniem i mieczem");
     baza.Add(ks);
     int start = baza.LiczbaKsiazek;
     baza.Remove(ks);
     int end = baza.LiczbaKsiazek;
     Assert.AreEqual(end, start-1);
 }
 public void RemoveCzytelnikTest()
 {
     Baza baza = new Baza();
     Czytelnik cz = new Czytelnik("Jan", "Kowalsky");
     baza.Add(cz);
     int start = baza.LiczbaCzytelnikow;
     baza.Remove(cz);
     int end = baza.LiczbaCzytelnikow;
     Assert.AreEqual(end, start - 1);
 }