예제 #1
0
 public ZaduziForm(KnjigaPrimerak kp)
 {
     InitializeComponent();
     primerak             = kp;
     txtBrojKnjige.Text   = primerak.Knjiga.KnjigaID.ToString();
     txtBrojPrimerka.Text = primerak.PrimerakID.ToString();
 }
예제 #2
0
        public Zaduzenje NadjiZaduzenje(Clan c, KnjigaPrimerak kp)
        {
            try
            {
                Zaduzenje z = new Zaduzenje()
                {
                    Clan           = c,
                    KnjigaPrimerak = kp
                };
                TransferKlasa zahtev = new TransferKlasa()
                {
                    Operacija       = Operacija.NadjiZaduzenje,
                    TransferObjekat = z
                };
                formater.Serialize(tok, zahtev);
                TransferKlasa odgovor = formater.Deserialize(tok) as TransferKlasa;

                if (odgovor.Signal)
                {
                    return(odgovor.TransferObjekat as Zaduzenje);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Izgubljena je konekcija sa serverom! Zatvaram formu...");
                klijent.Close();
                glavnaForma.Povezan = false;
                glavnaForma.Zatvori();
                return(null);
            }
        }
예제 #3
0
        public Zaduzenje NadjiZaduzenje(Clan c, KnjigaPrimerak kp)
        {
            List <Zaduzenje> lista = new List <Zaduzenje>();

            komanda.CommandText = $"Select * from Zaduzenje where ClanskiBroj = {c.ClanskiBroj} and" +
                                  $" PrimerakID = {kp.PrimerakID} and KnjigaID = {kp.Knjiga.KnjigaID}" +
                                  $" and DatumDo is NULL";
            komanda.CommandType = System.Data.CommandType.Text;
            OleDbDataReader citac = komanda.ExecuteReader();

            while (citac.Read())
            {
                Zaduzenje zz = new Zaduzenje()
                {
                    Clan           = c,
                    KnjigaPrimerak = kp,
                    DatumOd        = Convert.ToDateTime(citac["DatumOd"].ToString())
                };
                lista.Add(zz);
            }
            if (lista.Count == 0)
            {
                return(null);
            }
            return(lista[0]);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (txtClanskiBroj.Text == "" || txtBrojKnjige.Text == "" || txtBrojPrimerka.Text == "")
            {
                MessageBox.Show("Potrebno je da unesete clanski broj, broj knjige i broj primerka da bi se vrsila pretraga.", "Obavestenje");
                return;
            }
            Clan c = new Clan()
            {
                ClanskiBroj = Convert.ToInt32(txtClanskiBroj.Text)
            };
            Knjiga k = new Knjiga()
            {
                KnjigaID = Convert.ToInt32(txtBrojKnjige.Text)
            };
            KnjigaPrimerak kp = new KnjigaPrimerak()
            {
                PrimerakID = Convert.ToInt32(txtBrojPrimerka.Text),
                Knjiga     = k
            };

            try
            {
                zaduzenje = Komunikacija.Instance.NadjiZaduzenje(c, kp);

                txtDatum.Text = zaduzenje.DatumOd.ToShortDateString();
            }
            catch (Exception)
            {
                MessageBox.Show("Nije pronadjeno zaduzenje po unesenim vrednostima");
            }
        }
예제 #5
0
        public Knjiga NadjiKnjigu(int knjigaID)
        {
            List <Knjiga> listaKnjiga = new List <Knjiga>();

            komanda.CommandText = $"Select * from Knjiga where KnjigaID = {knjigaID} order by Naziv ASC";
            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);
            }
            if (listaKnjiga.Count == 0)
            {
                return(null);
            }
            return(listaKnjiga[0]);
        }
예제 #6
0
        private void btnDodajPrimerak_Click(object sender, EventArgs e)
        {
            KnjigaPrimerak kp = new KnjigaPrimerak()
            {
                PrimerakID  = sledeciPrimerakID++,
                Raspoloziva = true
            };

            txtPrimerakID.Text = sledeciPrimerakID.ToString();
            listaPrimeraka.Add(kp);
        }
예제 #7
0
 private void button3_Click(object sender, EventArgs e)
 {
     //new PretragaKnjigaForm().Show();
     ZaduzenjeForme.PronadjiKnjiguZaduzenjeForm pk = new ZaduzenjeForme.PronadjiKnjiguZaduzenjeForm();
     pk.ShowDialog();
     if (pk.DialogResult == DialogResult.OK)
     {
         primerak             = pk.Primerak;
         txtBrojPrimerka.Text = primerak.PrimerakID.ToString();
         txtBrojKnjige.Text   = primerak.Knjiga.KnjigaID.ToString();
     }
 }
        private void btnZaduzi_Click(object sender, EventArgs e)
        {
            KnjigaPrimerak kp = knjiga.SpisakPrimeraka[dgvSpisakPrimeraka.SelectedCells[0].RowIndex];

            new ZaduziForm(kp).Show();

            if (kp.Raspoloziva == false)
            {
                knjiga.Raspolozivo--;
                lblBrprRaspol.Text            = knjiga.Raspolozivo.ToString();
                dgvSpisakPrimeraka.DataSource = null;
                dgvSpisakPrimeraka.DataSource = knjiga.SpisakPrimeraka;
                dgvSpisakPrimeraka.Refresh();
            }
        }
        private void dgvSpisakPrimeraka_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvSpisakPrimeraka.SelectedCells.Count == 0)
            {
                btnZaduzi.Hide();
                return;
            }
            btnZaduzi.Show();
            btnZaduzi.Enabled = false;
            KnjigaPrimerak pr = knjiga.SpisakPrimeraka[dgvSpisakPrimeraka.SelectedCells[0].RowIndex];

            if (pr.Raspoloziva)
            {
                btnZaduzi.Enabled = true;
            }
        }
 public static Zaduzenje NadjiZaduzenje(Clan c, KnjigaPrimerak kp)
 {
     try
     {
         Broker.Instanca.OtvoriKonekciju();
         Zaduzenje z = Broker.Instanca.NadjiZaduzenje(c, kp);
         return(z);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         Broker.Instanca.ZatvoriKonekciju();
     }
 }
예제 #11
0
        public static Zaduzenje NadjiZaduzenje(Clan c, KnjigaPrimerak kp)
        {
            Zaduzenje zahtev = new Zaduzenje()
            {
                Clan           = c,
                KnjigaPrimerak = kp
            };
            OpstaSistemskaOperacija nadjiZaduzenje = new NadjiZaduzenjeSO();
            bool rez = nadjiZaduzenje.IzvrsiSO(zahtev);

            if (rez)
            {
                return(nadjiZaduzenje.Rezultat as Zaduzenje);
            }
            else
            {
                throw new Exception();
            }
        }
예제 #12
0
        private void button2_Click(object sender, EventArgs e)
        {
            lblPoruka.Text = "";
            if (txtBrojPrimerka.Text == "" || txtBrojKnjige.Text == "" || txtClanskiBroj.Text == "")
            {
                lblPoruka.Text      = "Sva polja su obavezna!";
                lblPoruka.ForeColor = Color.Red;
                return;
            }

            try
            {
                Knjiga    k = Komunikacija.Instance.NadjiKnjigu(Convert.ToInt32(txtBrojKnjige.Text));
                Zaduzenje z = new Zaduzenje();
                if (clan == null)
                {
                    clan = Komunikacija.Instance.NadjiClana(Convert.ToInt32(txtClanskiBroj.Text));
                }
                if (primerak == null)
                {
                    foreach (KnjigaPrimerak kp in k.SpisakPrimeraka)
                    {
                        if (kp.PrimerakID == Convert.ToInt32(txtBrojPrimerka.Text))
                        {
                            primerak = kp;
                            break;
                        }
                    }
                }
                z.Clan           = clan;
                primerak.Knjiga  = k;
                z.KnjigaPrimerak = primerak;


                if (z.KnjigaPrimerak == null || z.Clan == null)
                {
                    lblPoruka.Text      = "Nije moguce kreirati zaduzenje prema unetim podacima.";
                    lblPoruka.ForeColor = Color.Red;
                    return;
                }
                if (z.KnjigaPrimerak.Raspoloziva == false)
                {
                    lblPoruka.Text      = "Ovaj primerak nije raspoloziv!";
                    lblPoruka.ForeColor = Color.Red;
                    return;
                }
                DialogResult dialog = MessageBox.Show("Da li ste sigurni da zelite da zaduzite knjigu?", "Provera", MessageBoxButtons.YesNo);
                if (dialog == DialogResult.Yes)
                {
                    //Kontroler.Zaduzi(z);
                    if (Komunikacija.Instance.Zaduzi(z))
                    {
                        lblPoruka.Text       = "Sacuvano zaduzenje.";
                        primerak.Raspoloziva = false;
                        lblPoruka.ForeColor  = Color.Green;
                        OsveziFormu();
                    }
                    else
                    {
                        lblPoruka.Text      = "Nije uspesno zaduzeno.";
                        lblPoruka.ForeColor = Color.Red;
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Desila se greska!");
            }
        }
예제 #13
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);
        }
예제 #14
0
        public List <Clan> VratiSveClanove()
        {
            List <Clan> listaClanova = new List <Clan>();

            komanda.CommandText = "Select * from Clan order by ImePrezime";
            komanda.CommandType = System.Data.CommandType.Text;
            OleDbDataReader citac = komanda.ExecuteReader();

            while (citac.Read())
            {
                Clan c = new Clan()
                {
                    Adresa       = citac["Adresa"].ToString(),
                    BrojTelefona = citac["BrojTelefona"].ToString(),
                    ImePrezime   = citac["ImePrezime"].ToString(),
                    ClanskiBroj  = Convert.ToInt32(citac["ClanskiBroj"])
                };

                OleDbCommand komanda2 = konekcija.CreateCommand();
                komanda2.CommandText = $"Select * from (Zaduzenje inner join KnjigaPrimerak on Zaduzenje.PrimerakID = KnjigaPrimerak.PrimerakID) " +
                                       $"inner join Knjiga on KnjigaPrimerak.KnjigaID = Knjiga.KnjigaID where Zaduzenje.ClanskiBroj = {c.ClanskiBroj}";
                komanda2.CommandType = System.Data.CommandType.Text;
                OleDbDataReader citac2 = komanda2.ExecuteReader();

                #region zaduzenje
                while (citac2.Read())
                {
                    Zaduzenje z = new Zaduzenje()
                    {
                        Clan           = c,
                        DatumOd        = Convert.ToDateTime(citac2["DatumOd"]),
                        KnjigaPrimerak = new KnjigaPrimerak()
                        {
                            PrimerakID  = Convert.ToInt32(citac2["Zaduzenje.PrimerakID"]),
                            Raspoloziva = Convert.ToBoolean(citac2["Raspoloziva"]),
                            Knjiga      = new Knjiga()
                            {
                                GodinaIzdanja = Convert.ToInt32(citac2["GodinaIzdanja"]),
                                Naziv         = citac2["Naziv"].ToString(),
                                Opis          = citac2["Opis"].ToString(),
                                KnjigaID      = Convert.ToInt32(citac2["Knjiga.KnjigaID"]),
                                BrojPrimeraka = Convert.ToInt32(citac2["BrojPrimeraka"]),
                                Raspolozivo   = Convert.ToInt32(citac2["Raspolozivo"])
                            }
                        }
                    };
                    if (citac2["DatumDo"] != DBNull.Value)
                    {
                        z.DatumDo = Convert.ToDateTime(citac2["DatumDo"]);
                    }

                    OleDbCommand komanda3 = konekcija.CreateCommand();
                    komanda3.CommandText = $"Select * from KnjigaPrimerak where KnjigaPrimerak.KnjigaID = {z.KnjigaPrimerak.Knjiga.KnjigaID}";
                    komanda3.CommandType = System.Data.CommandType.Text;
                    OleDbDataReader citac3 = komanda3.ExecuteReader();

                    while (citac3.Read())
                    {
                        KnjigaPrimerak kp = new KnjigaPrimerak()
                        {
                            Knjiga      = z.KnjigaPrimerak.Knjiga,
                            PrimerakID  = Convert.ToInt32(citac3["PrimerakID"]),
                            Raspoloziva = Convert.ToBoolean(citac3["Raspoloziva"])
                        };
                        z.KnjigaPrimerak.Knjiga.SpisakPrimeraka.Add(kp);
                    }
                    OleDbCommand komanda4 = konekcija.CreateCommand();
                    komanda4.CommandText = $"Select * from Autor inner join KnjigaAutor on Autor.AutorID = KnjigaAutor.AutorID where KnjigaAutor.KnjigaID = {z.KnjigaPrimerak.Knjiga.KnjigaID}";
                    komanda4.CommandType = System.Data.CommandType.Text;
                    OleDbDataReader citac4 = komanda4.ExecuteReader();

                    while (citac4.Read())
                    {
                        Autor a = new Autor()
                        {
                            AutorID        = Convert.ToInt32(citac4["Autor.AutorID"]),
                            Biografija     = citac4["Biografija"].ToString(),
                            ImePrezime     = citac4["ImePrezime"].ToString(),
                            GodinaRodjenja = Convert.ToInt32(citac4["GodinaRodjenja"])
                        };
                        z.KnjigaPrimerak.Knjiga.ListaAutora.Add(a);
                    }

                    c.ListaZaduzenja.Add(z);
                }
                #endregion
                listaClanova.Add(c);
            }

            return(listaClanova);
        }
        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);
            }
        }
예제 #16
0
        protected override bool Izvrsi(IOpstiDomenskiObjekat odo)
        {
            try
            {
                string upit = "";

                switch (Pretraga.KriterijumPretrage)
                {
                case KriterijumPretrage.ImePrezimeClan:
                    upit = $"Select * from Clan where ImePrezime like '%{Pretraga.Vrednost}%' order by ImePrezime";
                    break;

                case KriterijumPretrage.ClanskiBroj:
                    upit = $"Select * from Clan where ClanskiBroj = {Convert.ToInt32(Pretraga.Vrednost)} order by ImePrezime";
                    break;
                }

                List <IOpstiDomenskiObjekat> listaPronadjeniClanovi = GenerickiBroker.Instanca.ExecuteReader(upit, odo);

                foreach (IOpstiDomenskiObjekat o in listaPronadjeniClanovi)
                {
                    Clan c = o as Clan;
                    upit = $"Select * from Zaduzenje where ClanskiBroj = {c.ClanskiBroj}";

                    List <IOpstiDomenskiObjekat> listaZaduzenja = GenerickiBroker.Instanca.ExecuteReader(upit, new Zaduzenje());

                    foreach (IOpstiDomenskiObjekat zaduzenje in listaZaduzenja)
                    {
                        Zaduzenje z = zaduzenje as Zaduzenje;
                        z.Clan = c;

                        upit = $"Select * from KnjigaPrimerak where PrimerakID = {z.KnjigaPrimerak.PrimerakID} and KnjigaID = {z.KnjigaPrimerak.Knjiga.KnjigaID}";
                        List <IOpstiDomenskiObjekat> listaPrimeraka = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaPrimerak());

                        foreach (IOpstiDomenskiObjekat prim in listaPrimeraka)
                        {
                            KnjigaPrimerak kp = prim as KnjigaPrimerak;

                            upit = $"Select * from Knjiga where KnjigaID = {kp.Knjiga.KnjigaID}";
                            List <IOpstiDomenskiObjekat> knjiga = GenerickiBroker.Instanca.ExecuteReader(upit, kp.Knjiga);
                            kp.Knjiga = knjiga[0] as Knjiga;

                            upit = $"Select * from KnjigaPrimerak where KnjigaID = {kp.Knjiga.KnjigaID}";
                            List <IOpstiDomenskiObjekat> listaPrimerakaKnjiga = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaPrimerak());

                            foreach (IOpstiDomenskiObjekat lp in listaPrimerakaKnjiga)
                            {
                                kp.Knjiga.SpisakPrimeraka.Add(lp as KnjigaPrimerak);
                            }

                            upit = $"Select * from KnjigaAutor where KnjigaID = {kp.Knjiga.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());
                                kp.Knjiga.ListaAutora.Add(autor[0] as Autor);
                            }

                            z.KnjigaPrimerak = kp;
                        }

                        c.ListaZaduzenja.Add(z);
                    }
                }

                Rezultat = listaPronadjeniClanovi;

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        protected override bool Izvrsi(IOpstiDomenskiObjekat odo)
        {
            try
            {
                Clan   clan = odo as Clan;
                string upit = $"Select * from Clan where ClanskiBroj = {clan.ClanskiBroj}";

                List <IOpstiDomenskiObjekat> clanovi = GenerickiBroker.Instanca.ExecuteReader(upit, odo);

                if (clanovi.Count == 0)
                {
                    return(false);
                }
                //foreach (IOpstiDomenskiObjekat o in clanovi)
                //{
                Clan c = clanovi[0] as Clan;
                upit = $"Select * from Zaduzenje where ClanskiBroj = {c.ClanskiBroj}";

                List <IOpstiDomenskiObjekat> listaZaduzenja = GenerickiBroker.Instanca.ExecuteReader(upit, new Zaduzenje());

                foreach (IOpstiDomenskiObjekat zaduzenje in listaZaduzenja)
                {
                    Zaduzenje z = zaduzenje as Zaduzenje;
                    z.Clan = c;

                    upit = $"Select * from KnjigaPrimerak where PrimerakID = {z.KnjigaPrimerak.PrimerakID} and KnjigaID = {z.KnjigaPrimerak.Knjiga.KnjigaID}";
                    List <IOpstiDomenskiObjekat> listaPrimeraka = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaPrimerak());

                    foreach (IOpstiDomenskiObjekat prim in listaPrimeraka)
                    {
                        KnjigaPrimerak kp = prim as KnjigaPrimerak;

                        upit = $"Select * from Knjiga where KnjigaID = {kp.Knjiga.KnjigaID}";
                        List <IOpstiDomenskiObjekat> knjiga = GenerickiBroker.Instanca.ExecuteReader(upit, kp.Knjiga);
                        kp.Knjiga = knjiga[0] as Knjiga;

                        upit = $"Select * from KnjigaPrimerak where KnjigaID = {kp.Knjiga.KnjigaID}";
                        List <IOpstiDomenskiObjekat> listaPrimerakaKnjiga = GenerickiBroker.Instanca.ExecuteReader(upit, new KnjigaPrimerak());

                        foreach (IOpstiDomenskiObjekat lp in listaPrimerakaKnjiga)
                        {
                            kp.Knjiga.SpisakPrimeraka.Add(lp as KnjigaPrimerak);
                        }

                        upit = $"Select * from KnjigaAutor where KnjigaID = {kp.Knjiga.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());
                            kp.Knjiga.ListaAutora.Add(autor[0] as Autor);
                        }

                        z.KnjigaPrimerak = kp;
                    }

                    c.ListaZaduzenja.Add(z);
                }

                //}

                Rezultat = c;

                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }