private void btnRazduzi_Click(object sender, EventArgs e) { lblPoruka.Text = ""; if (txtBrojPrimerka.Text == "" || txtBrojKnjige.Text == "" || txtClanskiBroj.Text == "" || txtDatum.Text == "") { lblPoruka.Text = "Sva polja su obavezna!"; lblPoruka.ForeColor = Color.Red; return; } try { if (zaduzenje == null) { Knjiga k = Komunikacija.Instance.NadjiKnjigu(Convert.ToInt32(txtBrojKnjige.Text)); zaduzenje = new Zaduzenje() { Clan = Komunikacija.Instance.NadjiClana(Convert.ToInt32(txtClanskiBroj.Text)), DatumOd = Convert.ToDateTime(txtDatum.Text) }; if (primerak == null) { foreach (KnjigaPrimerak kp in k.SpisakPrimeraka) { if (kp.PrimerakID == Convert.ToInt32(txtBrojPrimerka.Text)) { zaduzenje.KnjigaPrimerak = kp; break; } } } else { zaduzenje.KnjigaPrimerak = primerak; } } if (zaduzenje.KnjigaPrimerak == null || zaduzenje.Clan == null) { lblPoruka.Text = "Nije moguce promeniti zaduzenje prema unetim podacima."; lblPoruka.ForeColor = Color.Red; return; } DialogResult dialog = MessageBox.Show("Da li ste sigurni da zelite da razduzite knjigu?", "Provera", MessageBoxButtons.YesNo); if (dialog == DialogResult.Yes) { if (Komunikacija.Instance.Razduzi(zaduzenje)) { lblPoruka.Text = "Razduzeno."; lblPoruka.ForeColor = Color.Green; OsveziFormu(); } else { lblPoruka.Text = "Nije uspesno razduzeno."; lblPoruka.ForeColor = Color.Red; } } } catch (Exception) { MessageBox.Show("Desila se greska!"); } }
public void OnGet(string zanr, string SearchBook) { Cassandra.ISession session = SessionManager.GetSession(); IMapper mapper = new Mapper(session); String email = HttpContext.Session.GetString("email"); if (!String.IsNullOrEmpty(email)) { Korisnik korisnik = mapper.FirstOrDefault <Korisnik>("select * from korisnik where email = '" + email + "'"); if (korisnik.tip == 1) { Message = "Admin"; } else { Message = "User"; } //Message = "Welcome " + korisnik.ime; } if (!String.IsNullOrEmpty(SearchBook)) { knjigaSearch = mapper.FirstOrDefault <Knjiga>("select * from \"Knjiga\" where naziv like '" + SearchBook + "%'"); } if (String.IsNullOrEmpty(SearchBook) || knjigaSearch == null) { zanrFilter = zanr; HttpContext.Session.Remove("pagingState"); foreach (var zanrRaw in session.Execute("SELECT DISTINCT zanr FROM \"Knjiga\";")) { zanrovi.Add(zanrRaw["zanr"].ToString()); } RowSet knjigeRaw; if (String.IsNullOrEmpty(zanr) | !zanrovi.Contains(zanr)) {//all var ps = session.Prepare("SELECT * from \"Knjiga\" ;"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(10); knjigeRaw = session.Execute(statement); var pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } } else { var ps = session.Prepare("SELECT * from \"Knjiga\" where zanr='" + zanr + "';"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(5); knjigeRaw = session.Execute(statement); var pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } } foreach (var knjigaRaw in knjigeRaw) { Knjiga knjiga = new Knjiga(); knjiga.autor = knjigaRaw["autor"] != null ? knjigaRaw["autor"].ToString() : string.Empty; knjiga.brstrana = knjigaRaw["brstrana"] != null ? knjigaRaw["brstrana"].ToString() : string.Empty; knjiga.godina = knjigaRaw["godina"] != null ? knjigaRaw["godina"].ToString() : string.Empty; knjiga.knjigaID = knjigaRaw["knjigaID"].ToString(); knjiga.kolicina = knjigaRaw["kolicina"] != null?Int32.Parse(knjigaRaw["kolicina"].ToString()) : 0; knjiga.naziv = knjigaRaw["naziv"] != null ? knjigaRaw["naziv"].ToString() : string.Empty; knjiga.opis = knjigaRaw["opis"] != null ? knjigaRaw["opis"].ToString() : string.Empty; knjiga.pismo = knjigaRaw["pismo"] != null ? knjigaRaw["pismo"].ToString() : string.Empty; knjiga.slika = knjigaRaw["slika"] != null ? knjigaRaw["slika"].ToString() : string.Empty; knjiga.zanr = knjigaRaw["zanr"] != null ? knjigaRaw["zanr"].ToString() : string.Empty; knjiga.jezik = knjigaRaw["jezik"] != null ? knjigaRaw["jezik"].ToString() : string.Empty; sveKnjige.Add(knjiga); } } else { sveKnjige.Add(knjigaSearch); } }
private void btnUnosNoveKnjige_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtNaziv.Text) && !string.IsNullOrEmpty(txtAutor.Text) && !string.IsNullOrEmpty(txtCena.Text) && !string.IsNullOrEmpty(txtPopust.Text)) { Knjiga novaKnjiga = new Knjiga(); int idPrethodneKnjige = knjige[knjige.Count - 1].Id_knjige; int noviId = idPrethodneKnjige + 1; string noviNaziv = txtNaziv.Text; string noviAutor = txtAutor.Text; double novaCena = 0.0; char[] niz = txtCena.Text.ToCharArray(); bool greska = false; foreach (char karakter in niz) { if (!char.IsDigit(karakter)) { // ako jedan od karaktera nije broj greska = true; } } if (greska) { MessageBox.Show("Cenu unesite brojevima, ne slovima!", "Greška"); return; } else { novaCena = double.Parse(txtCena.Text); } int noviPopust = 0; char[] niz2 = txtPopust.Text.ToCharArray(); bool greska2 = false; foreach (char karakter in niz2) { if (!char.IsDigit(karakter)) { // ako jedan od karaktera nije broj greska2 = true; } } if (greska2) { MessageBox.Show("Popust unesite brojevima, ne slovima!", "Greška"); return; } else { noviPopust = int.Parse(txtPopust.Text); } klijentSistem.UnosKnjige(noviId, noviNaziv, noviAutor, novaCena, noviPopust, 0); MessageBox.Show("Uspešno uneta nova knjiga!" + Environment.NewLine + "ID: " + noviId + ", " + noviNaziv + " (" + noviAutor + "), " + novaCena + " din"); txtNaziv.Clear(); txtAutor.Clear(); txtCena.Clear(); txtPopust.Clear(); cbKnjigeIzmena.Items.Clear(); knjige = klijentJavni.PrikazKnjiga(); foreach (Knjiga knjiga in knjige) { if (!cbKnjigeIzmena.Items.Contains(knjiga)) { cbKnjigeIzmena.Items.Add(knjiga.Id_knjige + " " + knjiga.Naziv); } } } else { MessageBox.Show("Nijedno polje ne sme da ostane prazno.", "Greška"); } }
private void buttonIzmijeniDK_Click(object sender, EventArgs e) { MySqlConnection connection = DBConnection.getConnection(); MySqlCommand command = new MySqlCommand(); String query = "select autorID, naziv, opis, cijena, zanr from knjiga where id=@idParam"; string naziv, opis, zanr; double cijena; int autorID; try { command.CommandText = query; command.Connection = connection; command.Parameters.Add("idParam", MySqlDbType.Int32); command.Parameters["idParam"].Value = id; MySqlDataReader reader = command.ExecuteReader(); reader.Read(); naziv = reader["naziv"].ToString(); opis = reader["opis"].ToString(); zanr = reader["zanr"].ToString(); autorID = Int32.Parse(reader["autorID"].ToString()); cijena = Double.Parse(reader["cijena"].ToString()); reader.Close(); if (textBoxNazivDK.Text != "") { naziv = textBoxNazivDK.Text; } if (textBoxOpisDK.Text != "") { opis = textBoxOpisDK.Text; } if (textBoxZanrDK.Text != "") { zanr = textBoxZanrDK.Text; } if (textBoxCijenaDK.Text != "") { cijena = Double.Parse(textBoxCijenaDK.Text); } if (comboBoxAutorDK.Text != "") { string[] arr = comboBoxAutorDK.Text.Split(' '); string ime = arr[0]; string prezime = arr[1]; autorID = Autor.nadjiID(ime, prezime); } Knjiga knjiga = new Knjiga(autorID, naziv, opis, cijena, zanr); knjiga.IzmjenaKnjige(this.id); this.Close(); } catch (Exception err) { } }
private void ObradaPodataka() { try { while (!kraj) { TransferKlasa zahtevKlijenta = formater.Deserialize(tok) as TransferKlasa; TransferKlasa odgovor = new TransferKlasa(); switch (zahtevKlijenta.Operacija) { //1 case Operacija.Login: try { Bibliotekar bibl = zahtevKlijenta.TransferObjekat as Bibliotekar; b = KontrolerPL_Generic.Login(bibl.KorisnickoIme, bibl.Lozinka); odgovor.TransferObjekat = b; odgovor.Signal = true; NoviBibliotekar.Invoke(b); } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //2 case Operacija.VratiSveClanove: try { //List<Clan> listaClanova = Kontroler.VratiSveClanove(); List <IOpstiDomenskiObjekat> listaClanova = KontrolerPL_Generic.VratiSveClanove(); odgovor.TransferObjekat = listaClanova; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //3 case Operacija.VratiSveKnjige: try { //List<Knjiga> listaKnjiga = Kontroler.VratiSveKnjige(); List <IOpstiDomenskiObjekat> listaKnjiga = KontrolerPL_Generic.VratiSveKnjige(); odgovor.TransferObjekat = listaKnjiga; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //4 case Operacija.VratiSveAutore: try { //List<Autor> listaAutora = Kontroler.VratiSveAutore(); List <IOpstiDomenskiObjekat> listaAutora = KontrolerPL_Generic.VratiSveAutore(); odgovor.TransferObjekat = listaAutora; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //5 case Operacija.SacuvajIzmeneKnjiga: try { //Kontroler.SacuvajIzmeneKnjiga(zahtevKlijenta.TransferObjekat as Knjiga); KontrolerPL_Generic.SacuvajIzmeneKnjiga(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //6 case Operacija.DajPrimerakID: try { //int id = Kontroler.DajPrimerakID(); int id = KontrolerPL_Generic.DajPrimerakID(); odgovor.TransferObjekat = id; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //7 case Operacija.UbaciKnjigu: try { //int id = Kontroler.UbaciKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); int id = KontrolerPL_Generic.UbaciKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.TransferObjekat = id; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //8 case Operacija.PretraziKnjige: try { Pretraga p = zahtevKlijenta.TransferObjekat as Pretraga; //List<Knjiga> listaKnjiga = Kontroler.PretraziKnjige(p.Vrednost, p.KriterijumPretrage); List <IOpstiDomenskiObjekat> listaKnjiga = KontrolerPL_Generic.PretraziKnjige(p); odgovor.TransferObjekat = listaKnjiga; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //9 case Operacija.NadjiKnjigu: try { //Knjiga k = Kontroler.NadjiKnjigu((int)zahtevKlijenta.TransferObjekat); Knjiga k = KontrolerPL_Generic.NadjiKnjigu((int)zahtevKlijenta.TransferObjekat); odgovor.TransferObjekat = k; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //10 case Operacija.ObrisiKnjigu: try { //Kontroler.ObrisiKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); KontrolerPL_Generic.ObrisiKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //11 case Operacija.SacuvajIzmeneClan: try { //Kontroler.SacuvajIzmeneClan(zahtevKlijenta.TransferObjekat as Clan); odgovor.Signal = KontrolerPL_Generic.SacuvajIzmeneClan(zahtevKlijenta.TransferObjekat as Clan); } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //12 case Operacija.UbaciClana: try { //int cb = Kontroler.UbaciClana(zahtevKlijenta.TransferObjekat as Clan); int cb = KontrolerPL_Generic.UbaciClana(zahtevKlijenta.TransferObjekat as Clan); odgovor.TransferObjekat = cb; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //13 case Operacija.PretraziClanove: try { Pretraga p = zahtevKlijenta.TransferObjekat as Pretraga; //List<Clan> listaClanova = Kontroler.PretraziClanove(p.Vrednost, p.KriterijumPretrage); List <IOpstiDomenskiObjekat> listaClanova = KontrolerPL_Generic.PretraziClanove(p); odgovor.TransferObjekat = listaClanova; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //14 case Operacija.NadjiClana: try { //Clan c = Kontroler.NadjiClana((int)zahtevKlijenta.TransferObjekat); Clan c = KontrolerPL_Generic.NadjiClana((int)zahtevKlijenta.TransferObjekat); odgovor.TransferObjekat = c; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //15 case Operacija.ObrisiClana: try { KontrolerPL_Generic.ObrisiClana(zahtevKlijenta.TransferObjekat as Clan); //Kontroler.ObrisiClana(zahtevKlijenta.TransferObjekat as Clan); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //16 case Operacija.Zaduzi: try { //Kontroler.Zaduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); KontrolerPL_Generic.Zaduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //17 case Operacija.Razduzi: try { //Kontroler.Razduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); KontrolerPL_Generic.Razduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //18 case Operacija.NadjiZaduzenje: try { Zaduzenje zahtev = zahtevKlijenta.TransferObjekat as Zaduzenje; //Zaduzenje odg = Kontroler.NadjiZaduzenje(zahtev.Clan, zahtev.KnjigaPrimerak); Zaduzenje odg = KontrolerPL_Generic.NadjiZaduzenje(zahtev.Clan, zahtev.KnjigaPrimerak); odgovor.TransferObjekat = odg; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //19 case Operacija.Kraj: Console.WriteLine("Klijent je prekinuo vezu!"); UgasiKlijenta(); break; } } } catch (Exception) { } }
public Knjiga Insert(Knjiga knjiga) { throw new NotImplementedException(); }
public List <Knjiga> PretraziKnjige(string vrednostKriterijuma, KriterijumPretrage kriterijum) { List <Knjiga> listaKnjiga = new List <Knjiga>(); switch (kriterijum) { case KriterijumPretrage.NazivKnjige: komanda.CommandText = $"Select * from Knjiga where Naziv like '%{vrednostKriterijuma}%' order by Naziv ASC"; break; case KriterijumPretrage.ImePrezimeAutor: listaKnjiga = this.VratiSveKnjige(); return(this.NadjiKnjigePoAutoru(listaKnjiga, vrednostKriterijuma)); case KriterijumPretrage.BrojKnjige: komanda.CommandText = $"Select * from Knjiga where KnjigaID = {Convert.ToInt32(vrednostKriterijuma)} order by Naziv ASC"; break; } komanda.CommandType = System.Data.CommandType.Text; OleDbDataReader citac = komanda.ExecuteReader(); while (citac.Read()) { Knjiga k = new Knjiga() { GodinaIzdanja = Convert.ToInt32(citac["GodinaIzdanja"]), Naziv = citac["Naziv"].ToString(), Opis = citac["Opis"].ToString(), KnjigaID = Convert.ToInt32(citac["KnjigaID"]), BrojPrimeraka = Convert.ToInt32(citac["BrojPrimeraka"]), Raspolozivo = Convert.ToInt32(citac["Raspolozivo"]) }; OleDbCommand komanda2 = konekcija.CreateCommand(); komanda2.CommandText = $"Select * from KnjigaPrimerak where KnjigaPrimerak.KnjigaID = {k.KnjigaID}"; komanda2.CommandType = System.Data.CommandType.Text; OleDbDataReader citac2 = komanda2.ExecuteReader(); while (citac2.Read()) { KnjigaPrimerak kp = new KnjigaPrimerak() { Knjiga = k, PrimerakID = Convert.ToInt32(citac2["PrimerakID"]), Raspoloziva = Convert.ToBoolean(citac2["Raspoloziva"]) }; k.SpisakPrimeraka.Add(kp); } OleDbCommand komanda3 = konekcija.CreateCommand(); komanda3.CommandText = $"Select * from Autor inner join KnjigaAutor on Autor.AutorID = KnjigaAutor.AutorID where KnjigaAutor.KnjigaID = {k.KnjigaID}"; komanda3.CommandType = System.Data.CommandType.Text; OleDbDataReader citac3 = komanda3.ExecuteReader(); while (citac3.Read()) { Autor a = new Autor() { AutorID = Convert.ToInt32(citac3["Autor.AutorID"]), Biografija = citac3["Biografija"].ToString(), ImePrezime = citac3["ImePrezime"].ToString(), GodinaRodjenja = Convert.ToInt32(citac3["GodinaRodjenja"]) }; k.ListaAutora.Add(a); } listaKnjiga.Add(k); } return(listaKnjiga); }
public string dajNaziv(Knjiga knjiga) { return(knjiga.Naziv); }
private static void ProcessInput() { if (CurrentMenu17455 == Menus.Izlaz) { System.Environment.Exit(0); } else if (CurrentMenu17455 == Menus.Main) { History17455.Push(CurrentMenu17455); if (Index17455 == 1) { CurrentMenu17455 = Menus.RegDelKnjiga; } else if (Index17455 == 2) { CurrentMenu17455 = Menus.RegDelClan; } else if (Index17455 == 3) { CurrentMenu17455 = Menus.IznajmiVrati; } else if (Index17455 == 4) { CurrentMenu17455 = Menus.Pretraga; } else if (Index17455 == 5) { CurrentMenu17455 = Menus.Analiza; } else if (Index17455 == 6) { CurrentMenu17455 = Menus.PrintClanova; } else if (Index17455 == 7) { CurrentMenu17455 = Menus.PrintKnjiga; } else if (Index17455 == 8) { CurrentMenu17455 = Menus.Naplati; } else if (Index17455 == 9) { CurrentMenu17455 = Menus.Izlaz; } } else if (CurrentMenu17455 == Menus.RegDelKnjiga) { History17455.Push(CurrentMenu17455); if (Index17455 == 1) { CurrentMenu17455 = Menus.RegKnjiga; } else if (Index17455 == 2) { CurrentMenu17455 = Menus.DelKnjiga; } else if (Index17455 == 3) { Nazad(true); } } else if (CurrentMenu17455 == Menus.RegKnjiga) { if (Index17455 == 1) { History17455.Push(CurrentMenu17455); Knjiga knjiga = new Knjiga(); knjiga.GetValid(); _bibliotekaManager17455.AddKnjiga(knjiga); Nazad(true); } else if (Index17455 == 2) { History17455.Push(CurrentMenu17455); NaucniRad naucniRad = new NaucniRad(); naucniRad.GetValid(); _bibliotekaManager17455.AddKnjiga(naucniRad); Nazad(true); } else if (Index17455 == 3) { History17455.Push(CurrentMenu17455); Strip strip = new Strip(); strip.GetValid(); _bibliotekaManager17455.AddKnjiga(strip); Nazad(true); } else if (Index17455 == 4) { Nazad(true); } } else if (CurrentMenu17455 == Menus.DelKnjiga) { History17455.Push(CurrentMenu17455); Console.Write("Unesite sifru knjige koju zelite izbrisati (q za nazad): "); string code = Console.ReadLine(); if (code != "q") { while (!_bibliotekaManager17455.RemoveKnjigaById(code)) { Console.WriteLine("Knjiga sa tom sifrom ne postoji, unesite ponovo: "); code = Console.ReadLine(); if (code == "q") { break; } } } Nazad(true); } else if (CurrentMenu17455 == Menus.RegDelClan) { History17455.Push(CurrentMenu17455); if (Index17455 == 1) { CurrentMenu17455 = Menus.RegClan; } else if (Index17455 == 2) { CurrentMenu17455 = Menus.DelClan; } else if (Index17455 == 3) { Nazad(true); } } else if (CurrentMenu17455 == Menus.DelClan) { History17455.Push(CurrentMenu17455); Console.Write("Unesite sifru clana kojeg zelite izbrisati (q za nazad): "); string id = Console.ReadLine(); if (id != "q") { while (!_bibliotekaManager17455.RemoveClanById(id)) { Console.WriteLine("Clan sa tom sifrom ne postoji, unesite ponovo (q za nazad): "); id = Console.ReadLine(); if (id == "q") { break; } } } Nazad(true); } else if (CurrentMenu17455 == Menus.IznajmiVrati) { History17455.Push(CurrentMenu17455); if (Index17455 == 1) { CurrentMenu17455 = Menus.IznKnjigu; } else if (Index17455 == 2) { CurrentMenu17455 = Menus.VraKnjigu; } else if (Index17455 == 3) { Nazad(true); } } else if (CurrentMenu17455 == Menus.Pretraga) { History17455.Push(CurrentMenu17455); if (Index17455 == 1) { CurrentMenu17455 = Menus.PoISBN; } else if (Index17455 == 2) { CurrentMenu17455 = Menus.PoNazivu; } else if (Index17455 == 3) { CurrentMenu17455 = Menus.PoSifri; } else if (Index17455 == 4) { CurrentMenu17455 = Menus.PoImenu; } else if (Index17455 == 5) { Nazad(true); } } else if (CurrentMenu17455 == Menus.PrintKnjiga) { History17455.Push(CurrentMenu17455); _bibliotekaManager17455.PrintKnjige(); Parser.Stall(true); Nazad(true); } else if (CurrentMenu17455 == Menus.PrintClanova) { History17455.Push(CurrentMenu17455); _bibliotekaManager17455.PrintClanova(); Parser.Stall(true); Nazad(true); } else if (CurrentMenu17455 == Menus.IznKnjigu) { History17455.Push(CurrentMenu17455); Console.Write("Unesi sifru knjige: "); string knjigaId = Console.ReadLine(); Console.Write("Unesi sifru clana: "); string clanId = Console.ReadLine(); List <string> errorMessages = null; if (!_bibliotekaManager17455.Iznajmi(clanId, knjigaId, out errorMessages)) { Console.WriteLine("Nije moguce iznajmniti zato sto:"); foreach (string error in errorMessages) { Console.WriteLine(error); } Parser.Stall(); } Nazad(true); } else if (CurrentMenu17455 == Menus.VraKnjigu) { History17455.Push(CurrentMenu17455); Console.Write("Unesi sifru clana: "); string clanId = Console.ReadLine(); Console.Write("Unesi sifru knjige: "); string knjigaId = Console.ReadLine(); if (!_bibliotekaManager17455.VratiKnjigu(clanId, knjigaId)) { Console.WriteLine("Nije moguce vratiti knjigu."); Parser.Stall(); } Nazad(true); } else if (CurrentMenu17455 == Menus.PoISBN) { History17455.Push(CurrentMenu17455); string isbn; while (!KnjigaValidator.IsISBNValid(isbn = Console.ReadLine())) { if (isbn == "q") { break; } else { Console.Write("Unesite validan ISBN (q za nazad): "); } } if (isbn != "q") { Knjiga knjiga = _bibliotekaManager17455.SearchByISBN(isbn); if (knjiga == null) { Console.WriteLine("Ne postoji knjiga sa tim ISBNom."); } else { Console.WriteLine("Rezultat pretrage:"); knjiga.Print(); } } Nazad(true); } else if (CurrentMenu17455 == Menus.PoSifri) { History17455.Push(CurrentMenu17455); Console.Write("Unesite sifru: "); string sifra = Console.ReadLine(); IClan result = _bibliotekaManager17455.SearchClanBySifra(sifra); if (result == null) { Console.WriteLine("Nije pronadjen clan sa tom sifrom."); } else { result.Print(); } Parser.Stall(); Nazad(true); } else if (CurrentMenu17455 == Menus.PoImenu) { History17455.Push(CurrentMenu17455); Console.Write("Unesite ime clana: "); string ime = Console.ReadLine(); List <IClan> result = _bibliotekaManager17455.SearchBy(x => ((User)x).Ime == ime); if (result.Count == 0) { Console.WriteLine("Nije pronadjen clan sa tim imenom."); } else { foreach (IClan clan in result) { clan.Print(); } } Parser.Stall(); Nazad(true); } else if (CurrentMenu17455 == Menus.PoNazivu) { History17455.Push(CurrentMenu17455); string naziv = Console.ReadLine(); if (naziv != "q") { List <Knjiga> knjige = _bibliotekaManager17455.SearchByNaziv(naziv); if (knjige == null) { Console.WriteLine("Ne postoji knjiga sa tim nazivom."); } else { Console.WriteLine("Rezultat pretrage:"); foreach (Knjiga knjiga in knjige) { knjiga.Print(); Console.WriteLine(); } } } Nazad(true); } else if (CurrentMenu17455 == Menus.Analiza) { History17455.Push(CurrentMenu17455); _bibliotekaManager17455.Analyse(); Parser.Stall(); Nazad(true); } else if (CurrentMenu17455 == Menus.RegClan) { Console.WriteLine("Odaberite tip clana:"); Console.WriteLine("1. Obicni insan"); Console.WriteLine("2. Student (podaci o nivou studija studenta ce biti uneseni kasnije)"); Console.WriteLine("3. Profesor"); Console.WriteLine("4. Nazad"); int index = Parser.GetNextNumber(true, 1, 4); if (index == 1) { User user = new User(); user.PromptInput(); _bibliotekaManager17455.AddClan(user); Nazad(true); } else if (index == 2) { Student student = new Student(); student.PromptInput(); _bibliotekaManager17455.AddClan(student); Nazad(true); } else if (index == 3) { Profesor profesor = new Profesor(); profesor.PromptInput(); _bibliotekaManager17455.AddClan(profesor); Nazad(true); } else if (index == 4) { Nazad(true); } } else if (CurrentMenu17455 == Menus.KnjigaInput) { Knjiga knjiga = new Knjiga(); knjiga.GetValid(); _bibliotekaManager17455.AddKnjiga(knjiga); Nazad(true); } else if (CurrentMenu17455 == Menus.Naplati) { History17455.Push(CurrentMenu17455); var bannedList = _bibliotekaManager17455.Naplati(); if (bannedList?.Count > 0) { Console.WriteLine("Sljedeci useri vise ne mogu korisiti usluge biblioteke:"); foreach (var user in bannedList) { user.Print(); Console.WriteLine(); } Parser.Stall(); } Nazad(true); } Console.Clear(); }
private void obradaPodataka() { bool kraj = false; while (!kraj) { TransferKlasa zahtevKlijenta = formater.Deserialize(tok) as TransferKlasa; TransferKlasa odgovor = new TransferKlasa(); switch (zahtevKlijenta.Operacija) { //1 case Operacija.Login: try { Bibliotekar b = zahtevKlijenta.TransferObjekat as Bibliotekar; odgovor.TransferObjekat = Kontroler.Login(b.KorisnickoIme, b.Lozinka); odgovor.Signal = true; this.b = b; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //2 case Operacija.VratiSveClanove: try { List <Clan> listaClanova = Kontroler.VratiSveClanove(); odgovor.TransferObjekat = listaClanova; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //3 case Operacija.VratiSveKnjige: try { List <Knjiga> listaKnjiga = Kontroler.VratiSveKnjige(); odgovor.TransferObjekat = listaKnjiga; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //4 case Operacija.VratiSveAutore: try { List <Autor> listaAutora = Kontroler.VratiSveAutore(); odgovor.TransferObjekat = listaAutora; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //5 case Operacija.SacuvajIzmeneKnjiga: try { Kontroler.SacuvajIzmeneKnjiga(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //6 case Operacija.DajPrimerakID: try { int id = Kontroler.DajPrimerakID(); odgovor.TransferObjekat = id; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //7 case Operacija.UbaciKnjigu: try { int id = Kontroler.UbaciKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.TransferObjekat = id; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //8 case Operacija.PretraziKnjige: try { Pretraga p = zahtevKlijenta.TransferObjekat as Pretraga; List <Knjiga> listaKnjiga = Kontroler.PretraziKnjige(p.Vrednost, p.KriterijumPretrage); odgovor.TransferObjekat = listaKnjiga; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //9 case Operacija.NadjiKnjigu: try { Knjiga k = Kontroler.NadjiKnjigu((int)zahtevKlijenta.TransferObjekat); odgovor.TransferObjekat = k; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //10 case Operacija.ObrisiKnjigu: try { Kontroler.ObrisiKnjigu(zahtevKlijenta.TransferObjekat as Knjiga); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //11 case Operacija.SacuvajIzmeneClan: try { Kontroler.SacuvajIzmeneClan(zahtevKlijenta.TransferObjekat as Clan); odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //12 case Operacija.UbaciClana: try { int cb = Kontroler.UbaciClana(zahtevKlijenta.TransferObjekat as Clan); odgovor.TransferObjekat = cb; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //13 case Operacija.PretraziClanove: try { Pretraga p = zahtevKlijenta.TransferObjekat as Pretraga; List <Clan> listaClanova = Kontroler.PretraziClanove(p.Vrednost, p.KriterijumPretrage); odgovor.TransferObjekat = listaClanova; odgovor.Signal = true; } catch (Exception e) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //14 case Operacija.NadjiClana: try { Clan c = Kontroler.NadjiClana((int)zahtevKlijenta.TransferObjekat); odgovor.TransferObjekat = c; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //15 case Operacija.ObrisiClana: try { Kontroler.ObrisiClana(zahtevKlijenta.TransferObjekat as Clan); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //16 case Operacija.Zaduzi: try { Kontroler.Zaduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //17 case Operacija.Razduzi: try { Kontroler.Razduzi(zahtevKlijenta.TransferObjekat as Zaduzenje); odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //18 case Operacija.NadjiZaduzenje: try { Zaduzenje zahtev = zahtevKlijenta.TransferObjekat as Zaduzenje; Zaduzenje odg = Kontroler.NadjiZaduzenje(zahtev.Clan, zahtev.KnjigaPrimerak); odgovor.TransferObjekat = odg; odgovor.Signal = true; } catch (Exception) { odgovor.Signal = false; } formater.Serialize(tok, odgovor); break; //19 case Operacija.Kraj: Console.WriteLine("Klijent je prekinuo vezu!"); kraj = true; PrekiniKonekciju(); break; } } }
protected override bool Izvrsi(IOpstiDomenskiObjekat odo) { try { string upit = ""; List <IOpstiDomenskiObjekat> listaKnjiga = new List <IOpstiDomenskiObjekat>(); switch (Pretraga.KriterijumPretrage) { case KriterijumPretrage.NazivKnjige: upit = $"Select * from Knjiga where Naziv like '%{Pretraga.Vrednost}%' order by Naziv ASC"; break; case KriterijumPretrage.ImePrezimeAutor: return(PretraziPoAutoru()); //OVAJ CASE PREBACITI U KONTROLERA? case KriterijumPretrage.BrojKnjige: upit = $"Select * from Knjiga where KnjigaID = {Convert.ToInt32(Pretraga.Vrednost)} order by Naziv ASC"; break; } listaKnjiga = GenerickiBroker.Instanca.ExecuteReader(upit, odo); foreach (IOpstiDomenskiObjekat o in listaKnjiga) { Knjiga k = o as Knjiga; upit = $"Select * from KnjigaPrimerak where KnjigaPrimerak.KnjigaID = {k.KnjigaID}"; List <IOpstiDomenskiObjekat> listaPrimeraka = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaPrimerak()); foreach (IOpstiDomenskiObjekat kp in listaPrimeraka) { KnjigaPrimerak knjP = kp as KnjigaPrimerak; knjP.Knjiga = k; k.SpisakPrimeraka.Add(knjP); } upit = $"Select * from KnjigaAutor where KnjigaID = {k.KnjigaID}"; List <IOpstiDomenskiObjekat> listaKnjigaAutor = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaAutor()); foreach (IOpstiDomenskiObjekat ka in listaKnjigaAutor) { KnjigaAutor kaa = ka as KnjigaAutor; upit = $"Select * from Autor where AutorID = {kaa.AutorID}"; List <IOpstiDomenskiObjekat> autor = GenerickiBroker.Instanca.ExecuteReader(upit, new Autor()); k.ListaAutora.Add(autor[0] as Autor); } } Rezultat = listaKnjiga; return(true); } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
public static Knjiga PreuzmiKnjiguPoID(int id) { /* Preuzimamo novu konekciju za bazu od modula za preuzimanje konekcije za bazu (logicno) */ SqlConnection connection = DAOConnection.TraziNovuKonekciju(); /* Pripremamo promenljivu za povratnu vrednost */ Knjiga retVal; /* Pripremamo upit i komandu. Obezbedjujemo se protiv SQL injection-a (mada ovde ne bi trebalo da dodje do toga). */ string upit = "select Knjige.id, naziv, autor, godina, id_clana , ime, prezime from Knjige left join Clanovi on Knjige.id_clana = Clanovi.id where Knjige.id = @id"; SqlCommand cmd = new SqlCommand(upit, connection); cmd.Parameters.AddWithValue("id", id); /* Izvrsavamo upit nad bazom podataka */ SqlDataReader rdr = cmd.ExecuteReader(); if (rdr.Read()) { /* Ukoliko smo dobili neki rezultat, preuzimamo podatke */ /* Prvo deklarisemo promenljive koje cemo koristiti */ string naziv; string autor; int godina; Clan clan; /* ID i naziv ne mogu biti null, pa ih preuzimamo direktno bez ikakve provere */ id = (int)rdr[0]; naziv = (string)rdr[1]; /* Kolone "autor" i "godina" mogu biti imati vrednost NULL, pa moramo prvo izvrsiti proveru */ if (rdr.IsDBNull(2)) { autor = "-"; } else { autor = (string)rdr[2]; } if (rdr.IsDBNull(3)) { godina = -1; } else { godina = (int)rdr[3]; } /* ID Clana takodje moze imati vrednost NULL, tako da moramo izvrsiti proveru */ if (rdr.IsDBNull(4)) { /* Ukoliko je vrednost ove kolone NULL, knjiga je slobodna */ clan = null; } else { /* Ako id_clana nije null, onda mozemo da pokupimo podatke o clanu (posto ta polja onda sigurno nisu NULL). Obratiti paznju na to da su nam kolone odgovarajuceg clana dostupne jer smo prilikom upita izvrsili JOIN */ int id_clana = (int)rdr[4]; string ime = (string)rdr[5]; string prezime = (string)rdr[6]; clan = new Clan(id_clana, ime, prezime); } /* Na osnovu prikupljenih podataka formiramo novi objekat i smestamo ga u povratnu vrednost */ retVal = new Knjiga(id, naziv, autor, godina, clan); } else { /* Ukoliko nismo dobili nijedan rezultat iz baze podataka, vraticemo null */ retVal = null; } /* Zatvaramo otvorene resurse i zavrsavamo metodu */ rdr.Close(); connection.Close(); return(retVal); }
public static List <Knjiga> PreuzmiSveKnjige() { /* Preuzimamo novu konekciju za bazu od modula za preuzimanje konekcije za bazu (logicno) */ SqlConnection connection = DAOConnection.TraziNovuKonekciju(); /* Pripremamo praznu listu */ List <Knjiga> listaKnjiga = new List <Knjiga>(); /* Pripremamo SQL upit i komandu */ string upit = "select Knjige.id, naziv, autor, godina, id_clana , ime, prezime from Knjige left join Clanovi on Knjige.id_clana = Clanovi.id"; SqlCommand cmd = new SqlCommand(upit, connection); /* Izvrsavamo upit nad bazom podataka */ SqlDataReader rdr = cmd.ExecuteReader(); /* Iterativno citamo podatke i smestamo ih u listu */ while (rdr.Read()) { /* Zbog toga sto neke kolone u ovoj tabeli mogu imati vrednost NULL, moramo biti oprezni prilikom preuzimanja podataka */ /* Prvo deklarisemo promenljive koje cemo koristiti */ int id; string naziv; string autor; int godina; Clan clan; /* ID i naziv ne mogu biti null, pa ih preuzimamo direktno bez ikakve provere */ id = (int)rdr[0]; naziv = (string)rdr[1]; /* Kolone "autor" i "godina" mogu biti imati vrednost NULL, pa moramo prvo izvrsiti proveru */ if (rdr.IsDBNull(2)) { /* Ukoliko ne postoje podaci o autoru, koristimo predefinisanu vrednost "-" */ autor = "-"; } else { /* Ukoliko postoje podaci o autoru, mozemo bezbedno da ih preuzmemo */ autor = (string)rdr[2]; } if (rdr.IsDBNull(3)) { /* Ukoliko ne postoje podaci o godini, koristimo predefinisanu vrednost -1 */ godina = -1; } else { /* Ukoliko postoje podaci o godini, mozemo bezbedno da ih preuzmemo */ godina = (int)rdr[3]; } /* ID Clana takodje moze imati vrednost NULL, tako da moramo izvrsiti proveru */ if (rdr.IsDBNull(4)) { /* Ukoliko je vrednost ove kolone NULL, knjiga je slobodna */ clan = null; } else { /* Ako id_clana nije null, onda mozemo da pokupimo podatke o clanu (posto ta polja onda sigurno nisu NULL). Obratiti paznju na to da su nam kolone odgovarajuceg clana dostupne jer smo prilikom upita izvrsili JOIN */ int id_clana = (int)rdr[4]; string ime = (string)rdr[5]; string prezime = (string)rdr[6]; clan = new Clan(id_clana, ime, prezime); } /* Formiramo novi objekat koristeci pribavljene podatke i dodajemo ga u listu */ Knjiga novaKnjiga = new Knjiga(id, naziv, autor, godina, clan); listaKnjiga.Add(novaKnjiga); } /* Zatvaramo otvorene resurse*/ rdr.Close(); connection.Close(); /* Vracamo napunjenu listu */ return(listaKnjiga); }
public IzmeniKnjiguForm(Knjiga k) { InitializeComponent(); knjiga = k; }
public PrimerciKnjigeForm(Knjiga k) { InitializeComponent(); knjiga = k; }
void dugmeNaruci_Click(object sender, EventArgs e) { Button kliknuto = (Button)sender; int idKnjige = int.Parse(kliknuto.Name.Substring(kliknuto.Name.Length - 1)); Korisnik kupac = new Korisnik(); foreach (Korisnik k in klijentLogin.VratiSveNaloge()) { if (k.Korisnicko_ime.Equals(ulogovaniKorisnik)) { kupac = k; break; } } Knjiga kupljena = new Knjiga(); foreach (Knjiga knjiga in knjige) { if (knjiga.Id_knjige == idKnjige) { kupljena = knjiga; } } foreach (Control c in Controls) { if (c is TextBox && c.Name == "txtKolicina" + idKnjige) { kupljena.Kolicina = int.Parse(c.Text); break; } } klijentJavni.PoruciKnjigu(kupljena, kupac); MessageBox.Show("Uspešno naručena knjiga!"); kliknuto.Text = "Ponovo naruči"; Porudzbine p = new Porudzbine(); p.Id_porudzbine = 0; p.Id_korisnika = kupac.Id_korisnika; p.Id_knjige = kupljena.Id_knjige; p.Kolicina = kupljena.Kolicina; string upis = "Knjiga: " + kupljena.Naziv + " (" + kupljena.Autor + "), količina: " + p.Kolicina; double ukupnaCena = 0; if (kupljena.Popust != 0) { ukupnaCena = kupljena.Cena - (kupljena.Cena * (kupljena.Popust / 100.0)); ukupnaCena = ukupnaCena * p.Kolicina; } else { ukupnaCena = kupljena.Cena * p.Kolicina; } upis += ", ukupno: " + ukupnaCena + " din, vreme: " + DateTime.Now; lbPorudzbine.Items.Add(upis); }
public ActionResult Details(int id) { Knjiga Model = ctx.Knjiga.Find(id); return(View(Model)); }
private void smanjiKnjige(Knjiga knjiga, int brojKnjiga) { }
private void IzmijeniBrisiKnjigu_Load(object sender, EventArgs e) { Knjiga.PrikaziKnjige(dataGridViewKnjige); }
public Knjiga Delete(Knjiga knjiga) { throw new NotImplementedException(); }
public IActionResult Edit(int id) { Knjiga knjiga = Knjige.Get(id); return(View(knjiga)); }
public Knjiga Update(Knjiga knjiga, int id) { throw new NotImplementedException(); }
protected override void IzvrsiKonkretnuOperaciju(IDomenskiObjekat odo) { Knjiga o = (Knjiga)odo; KnjigeList = broker.VratiSve(o).OfType <Knjiga>().ToList(); }
public KnjigaViseInfoForm(Knjiga k) { knjiga = k; InitializeComponent(); }
/*public void OnGet(string SearchBook) * { * Cassandra.ISession session = SessionManager.GetSession(); * IMapper mapper = new Mapper(session); * * String email = HttpContext.Session.GetString("email"); * if(!String.IsNullOrEmpty(email)) * { * Korisnik korisnik = mapper.FirstOrDefault<Korisnik>("select * from korisnik where email = '" + email + "'"); * if(korisnik.tip==1) * Message="Admin"; * else * Message="User"; * //Message = "Welcome " + korisnik.ime; * } * * Knjiga k = mapper.FirstOrDefault<Knjiga>("select * from \"Knjiga\" where naziv = '" + SearchBook + "'"); * * }*/ public JsonResult OnGetLoadMore(string selektovaniZanr) { byte[] pagingState; bool gotPagingState = HttpContext.Session.TryGetValue("pagingState", out pagingState); if (!gotPagingState) { return(new JsonResult("nemaVise")); } Cassandra.ISession session = SessionManager.GetSession(); RowSet knjigeRaw; if (selektovaniZanr.CompareTo("All") == 0) { var ps = session.Prepare("SELECT * from \"Knjiga\" ;"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(7).SetPagingState(pagingState); knjigeRaw = session.Execute(statement); pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } else { HttpContext.Session.Remove("pagingState"); } } else { var ps = session.Prepare("SELECT * from \"Knjiga\" where zanr='" + selektovaniZanr + "';"); var statement = ps.Bind().SetAutoPage(false).SetPageSize(5).SetPagingState(pagingState); knjigeRaw = session.Execute(statement); pagingState = knjigeRaw.PagingState; if (pagingState != null) { HttpContext.Session.Set("pagingState", pagingState); } else { HttpContext.Session.Remove("pagingState"); } } List <Knjiga> josKnjiga = new List <Knjiga>(); foreach (var knjigaRaw in knjigeRaw) { Knjiga knjiga = new Knjiga(); knjiga.autor = knjigaRaw["autor"] != null ? knjigaRaw["autor"].ToString() : string.Empty; knjiga.brstrana = knjigaRaw["brstrana"] != null ? knjigaRaw["brstrana"].ToString() : string.Empty; knjiga.godina = knjigaRaw["godina"] != null ? knjigaRaw["godina"].ToString() : string.Empty; knjiga.knjigaID = knjigaRaw["knjigaID"].ToString(); knjiga.kolicina = knjigaRaw["kolicina"] != null?Int32.Parse(knjigaRaw["kolicina"].ToString()) : 0; knjiga.naziv = knjigaRaw["naziv"] != null ? knjigaRaw["naziv"].ToString() : string.Empty; knjiga.opis = knjigaRaw["opis"] != null ? knjigaRaw["opis"].ToString() : string.Empty; knjiga.pismo = knjigaRaw["pismo"] != null ? knjigaRaw["pismo"].ToString() : string.Empty; knjiga.slika = knjigaRaw["slika"] != null?LoadImage(knjigaRaw["slika"].ToString()) : string.Empty; knjiga.zanr = knjigaRaw["zanr"] != null ? knjigaRaw["zanr"].ToString() : string.Empty; knjiga.jezik = knjigaRaw["jezik"] != null ? knjigaRaw["jezik"].ToString() : string.Empty; josKnjiga.Add(knjiga); } return(new JsonResult(josKnjiga)); }
private void UCUnosKnjige_Load(object sender, EventArgs e) { knjiga = new Knjiga(); }
private void btnVracenaKnjiga_Click(object sender, EventArgs e) { var connectionString = "mongodb://localhost/?safe=true"; var server = MongoServer.Create(connectionString); var database = server.GetDatabase("Biblioteka"); var clanoviCollection = database.GetCollection <Clan>("clanovi"); var knjigeColl = database.GetCollection <Knjiga>("knjige"); //int indexRow = dataGridView1.CurrentRow.Index; if (listBox1.SelectedItems.Count == 0) { MessageBox.Show("Selektujte knjigu iz liste iznajmljenih knjiga!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Clan clan = new Clan(); foreach (Clan c in clanoviCollection.Find(Query.EQ("brojClanskeKarte", cbClanovi.SelectedItem.ToString()))) { clan = c; } Knjiga knjiga = new Knjiga(); foreach (Knjiga k in knjigeColl.Find(Query.EQ("naslov", listBox1.SelectedItem.ToString())))//(string)dataGridView1[1, indexRow].Value))) { knjiga = k; } List <ObjectId> listaKnjiga = new List <ObjectId>(); List <ObjectId> listaClanova = new List <ObjectId>(); //sve knjige koje je iznajmio clan foreach (ObjectId izKnjiga in clan.iznajmljeneKnjige.ToList()) { listaKnjiga.Add(izKnjiga); } //svi clanovi kojima je knjiga izdata foreach (ObjectId izClanu in knjiga.IzdataClanovima.ToList()) { listaClanova.Add(izClanu); } for (int i = 0; i < listaKnjiga.Count; i++) { if (knjiga.Id == listaKnjiga[i]) //knjiga koju vracamo se brise iz iznajmljenih { listaKnjiga.RemoveAt(i); } knjiga.brojPrimeraka++; } knjigeColl.Save(knjiga); //za knjigu se obrise clan koji je iznajmio (IzdataClanovima) for (int i = 0; i < listaClanova.Count; i++) { if (clan.Id == listaClanova[i]) { listaClanova.RemoveAt(i); } } //i onda update var query = Query.EQ("_id", clan.Id); var update = MongoDB.Driver.Builders.Update.Set("iznajmljeneKnjige", BsonValue.Create(listaKnjiga)); clanoviCollection.Update(query, update); var query1 = Query.EQ("_id", knjiga.Id); var update1 = MongoDB.Driver.Builders.Update.Set("IzdataClanovima", BsonValue.Create(listaClanova)); knjigeColl.Update(query1, update1); MessageBox.Show("Knjiga " + knjiga.naslov + " je vracena.", "Akcija uspesno obavljena", MessageBoxButtons.OK, MessageBoxIcon.Information); }