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!");
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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");
            }
        }
Esempio n. 4
0
        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)
            {
            }
        }
Esempio n. 5
0
        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)
            {
            }
        }
Esempio n. 6
0
 public Knjiga Insert(Knjiga knjiga)
 {
     throw new NotImplementedException();
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
 public string dajNaziv(Knjiga knjiga)
 {
     return(knjiga.Naziv);
 }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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;
 }
Esempio n. 15
0
 public PrimerciKnjigeForm(Knjiga k)
 {
     InitializeComponent();
     knjiga = k;
 }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        public ActionResult Details(int id)
        {
            Knjiga Model = ctx.Knjiga.Find(id);

            return(View(Model));
        }
Esempio n. 18
0
 private void smanjiKnjige(Knjiga knjiga, int brojKnjiga)
 {
 }
 private void IzmijeniBrisiKnjigu_Load(object sender, EventArgs e)
 {
     Knjiga.PrikaziKnjige(dataGridViewKnjige);
 }
Esempio n. 20
0
 public Knjiga Delete(Knjiga knjiga)
 {
     throw new NotImplementedException();
 }
Esempio n. 21
0
        public IActionResult Edit(int id)
        {
            Knjiga knjiga = Knjige.Get(id);

            return(View(knjiga));
        }
Esempio n. 22
0
 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();
 }
Esempio n. 25
0
        /*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));
        }
Esempio n. 26
0
 private void UCUnosKnjige_Load(object sender, EventArgs e)
 {
     knjiga = new Knjiga();
 }
Esempio n. 27
0
        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);
        }