public void AddOpisStanuEgzemplarzaTest() { DataRepository repozytorium = new DataRepository(wypelnia); { repozytorium.DataContex = dataConstexx; }; Assert.AreEqual(repozytorium.SizeOfOpisStanow(), 0); Egzemplarz egz = new Ksiazka(111, "c# 6.0 Leksykon ieszonkowy", Rodzaj.popularno_naukowy, 200, "Joseph", "Albahari", "978-83-283-2446-6"); OpisStanuEgzemplarza op1 = new OpisStanuEgzemplarza(); op1.KtoryEgzemplarz = egz; op1.DataZakupu = new DateTime(2018, 3, 1, 9, 0, 0); op1.Dostepna = true; op1.LicznikWypozyczen = 0; op1.OpisStanu = "nowy, nie uszkodzony"; Assert.AreEqual(repozytorium.SizeOfOpisStanow(), 0); repozytorium.AddOpisStanuEgzemplarza(op1); Assert.AreEqual(repozytorium.SizeOfOpisStanow(), 1); Assert.ReferenceEquals(repozytorium.GetOpisStanuEgzemplarzaNr(0), op1); }
public bool Zwroc(Uzytkownik uz, Egzemplarz eg) { Boolean CzyZwrocil = false; if (repozytorium.GetAllUzytkownikow().Contains(uz)) { Predicate <OpisStanuEgzemplarza> predykat = CzyEgzemplarz; bool CzyEgzemplarz(OpisStanuEgzemplarza opis) { return(opis.Equals(eg)); } OpisStanuEgzemplarza znalezionyOpis = repozytorium.GetAllOpisStanuEgzemplarza().Find(predykat); if (!znalezionyOpis.Dostepna) { ZdarzenieZwrotu zd = new ZdarzenieZwrotu(); zd.Co = eg; zd.Kto = uz; zd.KiedyZwrocil = DateTime.Now; repozytorium.AddZdarzenie(zd); znalezionyOpis.Dostepna = true; CzyZwrocil = true; } } return(CzyZwrocil); }
// ********************** Zdarzenia ********************** public Boolean Wypozycz(Uzytkownik uz, Egzemplarz eg) { Boolean czyWypozyczy = false; if (repozytorium.GetAllUzytkownikow().Contains(uz)) { Predicate <OpisStanuEgzemplarza> predykat = CzyEgzemplarz; bool CzyEgzemplarz(OpisStanuEgzemplarza opis) { return(opis.Equals(eg)); } OpisStanuEgzemplarza znalezionyOpis = repozytorium.GetAllOpisStanuEgzemplarza().Find(predykat); if (znalezionyOpis.Dostepna) { ZdarzeniePozyczenia zd = new ZdarzeniePozyczenia(); zd.Co = eg; zd.Kto = uz; zd.KiedyWypozyczyl = DateTime.Now; repozytorium.AddZdarzenie(zd); znalezionyOpis.Dostepna = false; czyWypozyczy = true; znalezionyOpis.LicznikWypozyczen = znalezionyOpis.LicznikWypozyczen + 1; // zwiekrzam licznik wyypozyczen } } return(czyWypozyczy); }
public void GetAllOpisStanuEgzemplarzasTest() { DataRepository repozytorium = new DataRepository(wypelnia); { repozytorium.DataContex = dataConstexx; }; Assert.AreEqual(repozytorium.SizeOfOpisStanow(), 0); Egzemplarz egz = new Ksiazka(111, "c# 6.0 Leksykon ieszonkowy", Rodzaj.popularno_naukowy, 200, "Joseph", "Albahari", "978-83-283-2446-6"); OpisStanuEgzemplarza op1 = new OpisStanuEgzemplarza(); op1.KtoryEgzemplarz = egz; op1.DataZakupu = new DateTime(2018, 3, 1, 9, 0, 0); op1.Dostepna = true; op1.LicznikWypozyczen = 0; op1.OpisStanu = "nowy, nie uszkodzony"; OpisStanuEgzemplarza op2 = new OpisStanuEgzemplarza(); op1.KtoryEgzemplarz = egz; op1.DataZakupu = new DateTime(2018, 4, 2, 8, 0, 0); op1.Dostepna = true; op1.LicznikWypozyczen = 1; op1.OpisStanu = "malunki na stonie 2"; repozytorium.AddOpisStanuEgzemplarza(op1); repozytorium.AddOpisStanuEgzemplarza(op2); List <OpisStanuEgzemplarza> nowa = new List <OpisStanuEgzemplarza>(); nowa.Add(op1); nowa.Add(op2); List <OpisStanuEgzemplarza> zRepozytorium = repozytorium.GetAllOpisStanuEgzemplarza(); for (int i = 0; i < repozytorium.SizeOfUzytkownicy(); i++) { Assert.ReferenceEquals(nowa[i], zRepozytorium[i]); } }
public void Wypelnij(ref DataContext contex) { // ********************wypelniam uzytkownikow******************** Uzytkownik u1 = new Uzytkownik { Imie = "Jan", Nazwisko = "Niezbedny", Pesel = 6389, Adres = "Gdanska 3m.22", }; Uzytkownik u2 = new Uzytkownik { Imie = "Grzegorz", Nazwisko = "Brzeczyszczykiewicz", Pesel = 111111, Adres = "Chrzeszczygrzegoszyce powiad Łękołody" }; contex.listaUzytkownikow.Add(u1); contex.listaUzytkownikow.Add(u2); //******************** wypelniam ksiazki******************** Egzemplarz e1 = new Ksiazka(1, "c# lekykon kieszonkowy", Rodzaj.popularno_naukowy, 199, "Joseph", "Albahari", "978-83-283-2446-6"); Egzemplarz e2 = new Ksiazka(2, "Rzeżnik drzew", Rodzaj.fantastyka, 479, "Andrzej", "Pilipiuk", "978-83-7574-937-3"); contex.egzemplarze.Add(e1.Id, e1); contex.egzemplarze.Add(e2.Id, e2); // ********************wypelniam zdarzenia******************** string dateString = "5/1/2008 8:30:52 AM"; Zdarzenie z1 = new ZdarzenieZwrotu() { Kto = u1, Co = e1, KiedyZwrocil = DateTime.Now, Kara = 22, }; Zdarzenie zp1 = new ZdarzeniePozyczenia() { Kto = u1, Co = e1, KiedyWypozyczyl = DateTime.Parse(dateString, System.Globalization.CultureInfo.InvariantCulture), }; Zdarzenie z2 = new ZdarzenieZwrotu { Kto = u1, Co = e2, KiedyZwrocil = DateTime.Today, //new DateTime(2018, 6, 15, 13, 0, 0), Kara = 33, }; Zdarzenie zp2 = new ZdarzeniePozyczenia { Kto = u1, Co = e2, KiedyWypozyczyl = Convert.ToDateTime(dateString),// new DateTime(2018, 6, 8, 16, 0, 0), //01/03/2008 07:00:00 }; Zdarzenie z3 = new ZdarzenieZwrotu { Kto = u2, Co = e1, KiedyZwrocil = new DateTime(2018, 7, 9, 13, 10, 0), //01/03/2008 07:00:00 Kara = 0, }; Zdarzenie zp3 = new ZdarzeniePozyczenia { Kto = u2, Co = e1, KiedyWypozyczyl = new DateTime(2018, 7, 9, 13, 10, 0), //01/03/2008 07:00:00 }; Zdarzenie z4 = new ZdarzeniePozyczenia { Kto = u2, Co = e1, KiedyWypozyczyl = new DateTime(2018, 9, 11, 19, 20, 0), //01/03/2008 07:00:00 }; contex.zdarzenia.Add(z1); contex.zdarzenia.Add(zp1); contex.zdarzenia.Add(z2); contex.zdarzenia.Add(zp2); contex.zdarzenia.Add(z3); contex.zdarzenia.Add(zp3); contex.zdarzenia.Add(z4); //******************** opis stanow egzemplarzy******************** OpisStanuEgzemplarza oe1 = new OpisStanuEgzemplarza { DataZakupu = new DateTime(2017, 1, 2, 13, 10, 0), KtoryEgzemplarz = e1, OpisStanu = "Nowa bez uszkodzen", Dostepna = true }; OpisStanuEgzemplarza oe2 = new OpisStanuEgzemplarza { DataZakupu = new DateTime(2017, 1, 2, 13, 10, 0), KtoryEgzemplarz = e2, OpisStanu = "uszkodzony róg na 4 stronie", Dostepna = true }; contex.opisStanow.Add(oe1); contex.opisStanow.Add(oe2); }
//********************* Główna metoda ********************* public void Wypelnij(ref DataContext contex) { //********************* Dodajemy osoby********************* XDocument xml = XDocument.Load(@"..\xml\Dane.xml"); List <Uzytkownik> listaU = ( from osoba in xml.Root.Elements("osoba") select new Uzytkownik ( osoba.Element("imie").Value, osoba.Element("nazwisko").Value, int.Parse(osoba.Element("pesel").Value), osoba.Element("adres").Value ) ).ToList <Uzytkownik>(); for (int i = 0; i < listaU.Count; i++) { contex.listaUzytkownikow.Add(listaU.ElementAt(i)); } //**************************** Dodajemy ksiazki ********************* List <Ksiazka> lista = ( from ksiazka in xml.Root.Elements("ksiazka") select new Ksiazka ( int.Parse(ksiazka.Element("id").Value), ksiazka.Element("tytul").Value, ((Rodzaj)(Rodzaj)Enum.Parse(typeof(Rodzaj), ksiazka.Element("rodzaj").Value)), int.Parse(ksiazka.Element("iloscStron").Value), ksiazka.Element("imieAutora").Value, ksiazka.Element("nazwiskoAutora").Value, ksiazka.Element("isbn").Value ) ).ToList <Ksiazka>(); for (int i = 0; i < lista.Count; i++) { contex.egzemplarze.Add(lista.ElementAt(i).Id, lista.ElementAt(i)); } //**************************** Dodajemy zwroty ********************* List <PotrzebnaDoSynchronizacjiZdarzenZwrotu> listaZ = ( from zdarz in xml.Root.Elements("zdarzenieZwrotu") select new PotrzebnaDoSynchronizacjiZdarzenZwrotu ( int.Parse(zdarz.Element("kto").Value), int.Parse(zdarz.Element("co").Value), DateTime.Parse(zdarz.Element("kiedyZwrocil").Value), int.Parse(zdarz.Element("kara").Value) ) ).ToList <PotrzebnaDoSynchronizacjiZdarzenZwrotu>(); for (int i = 0; i < listaZ.Count; i++) { // tworze predykaty Predicate <Egzemplarz> predykatK = CzyEgzemplarzK; bool CzyEgzemplarzK(Egzemplarz opis) { return(opis.Id.Equals(listaZ.ElementAt(i).Ksiazka)); } Predicate <Uzytkownik> predykatU = CzyEgzemplarzU; bool CzyEgzemplarzU(Uzytkownik opis) { return(opis.Pesel.Equals(listaZ.ElementAt(i).Osoba)); } // tworze zdarzenie z predykatow ZdarzenieZwrotu zd = new ZdarzenieZwrotu(); zd.Co = lista.Find(predykatK); zd.Kto = listaU.Find(predykatU); zd.KiedyZwrocil = Convert.ToDateTime(listaZ.ElementAt(i).Zwrot); zd.Kara = listaZ.ElementAt(i).Kar; //dodaje do repozytorium contex.zdarzenia.Add(zd); } //**************************** Dodajemy pozyczenia **************************** List <PotrzebnaDoSynchronizacjiZdarzenPozyczen> listaPoz = ( from zdarzPoz in xml.Root.Elements("zdarzeniePozyczenia") select new PotrzebnaDoSynchronizacjiZdarzenPozyczen ( int.Parse(zdarzPoz.Element("kto").Value), int.Parse(zdarzPoz.Element("co").Value), DateTime.Parse(zdarzPoz.Element("kiedyWypozyczyl").Value) ) ).ToList <PotrzebnaDoSynchronizacjiZdarzenPozyczen>(); for (int i = 0; i < listaPoz.Count; i++) { // tworze predykaty Predicate <Egzemplarz> predykatK = CzyEgzemplarzK; bool CzyEgzemplarzK(Egzemplarz opis) { return(opis.Id.Equals(listaPoz.ElementAt(i).Ksiazka)); } Predicate <Uzytkownik> predykatU = CzyEgzemplarzU; bool CzyEgzemplarzU(Uzytkownik opis) { return(opis.Pesel.Equals(listaPoz.ElementAt(i).Osoba)); } // tworze zdarzenie z predykatow ZdarzeniePozyczenia zd = new ZdarzeniePozyczenia(); zd.Co = lista.Find(predykatK); zd.Kto = listaU.Find(predykatU); zd.KiedyWypozyczyl = Convert.ToDateTime(listaPoz.ElementAt(i).Wypoz); //dodaje do repozytorium contex.zdarzenia.Add(zd); } //**************************** Dodajemy opisy Egzemplarza ********************* List <PotrzebnaDoSynchronizacjiOpisuEgzemplarza> listaO = ( from opis in xml.Root.Elements("opisstanuegzemplarza") select new PotrzebnaDoSynchronizacjiOpisuEgzemplarza ( int.Parse(opis.Element("egzemplarz").Value), DateTime.Parse(opis.Element("datazakupu").Value), Boolean.Parse(opis.Element("dostepna").Value), opis.Element("opisstanu").Value, int.Parse(opis.Element("licznikwypozyczen").Value) ) ).ToList <PotrzebnaDoSynchronizacjiOpisuEgzemplarza>(); for (int i = 0; i < listaO.Count; i++) { // tworze predykaty Predicate <Egzemplarz> predykatK = CzyEgzemplarzK; bool CzyEgzemplarzK(Egzemplarz opis) { return(opis.Id.Equals(listaO.ElementAt(i).KtoryEgzemplarz)); } // tworze zdarzenie z predykatow OpisStanuEgzemplarza op = new OpisStanuEgzemplarza(); op.KtoryEgzemplarz = lista.Find(predykatK); op.DataZakupu = Convert.ToDateTime(listaO.ElementAt(i).DataZakupu); op.Dostepna = listaO.ElementAt(i).Dostepna; op.OpisStanu = listaO.ElementAt(i).OpisStanu; op.LicznikWypozyczen = listaO.ElementAt(i).LicznikWypozyczen; contex.opisStanow.Add(op); } }