Esempio n. 1
0
 private void PrikaziDjelatnikeNaProjektu(int projektId)
 {
     lbDjelatnici.DataSource     = Repozitorij.GetDjelatniciNaProjektu(projektId);
     lbDjelatnici.DataTextField  = "ImePrezime";
     lbDjelatnici.DataValueField = "IDDjelatnik";
     lbDjelatnici.DataBind();
 }
        private void AžurirajDjelatnikeProjekta(int idProjekt)
        {
            List <Djelatnik> djelatniciNaProjektu = new List <Djelatnik>();

            djelatniciNaProjektu.AddRange(Repozitorij.GetDjelatniciNaProjektu(idProjekt));
            List <Djelatnik> djelatniciZaDodati               = privremeniDjelatnici;
            List <Djelatnik> djelatniciZaUkloniti             = new List <Djelatnik>();
            List <Djelatnik> djelatniciNaProjektimaKojiOstaju = new List <Djelatnik>();

            foreach (Djelatnik djelatnik in djelatniciNaProjektu)
            {
                var djelatnikKojiOstaje = privremeniDjelatnici.Find(x => x.IDDjelatnik == djelatnik.IDDjelatnik);
                if (djelatnikKojiOstaje != null)
                {
                    djelatniciNaProjektimaKojiOstaju.Add(djelatnikKojiOstaje);
                }
            }
            foreach (Djelatnik djelatnik in djelatniciNaProjektu)
            {
                var djelatnikKojiNeOstaje = djelatniciNaProjektimaKojiOstaju.Find(x => x.IDDjelatnik == djelatnik.IDDjelatnik);
                if (djelatnikKojiNeOstaje == null)
                {
                    djelatniciZaUkloniti.Add(djelatnik);
                }
            }


            foreach (Djelatnik djelatnik in djelatniciNaProjektu)
            {
                var itemZaBrisanje = djelatniciZaDodati.Find(x => x.IDDjelatnik == djelatnik.IDDjelatnik);
                if (itemZaBrisanje != null)
                {
                    djelatniciZaDodati.Remove(itemZaBrisanje);
                }
            }

            if (djelatniciZaDodati.Count != 0)
            {
                foreach (Djelatnik djelatnik in djelatniciZaDodati)
                {
                    Repozitorij.InsertProjektDjelatnik(djelatnik.IDDjelatnik, idProjekt);
                }
            }


            if (djelatniciZaUkloniti.Count != 0)
            {
                foreach (Djelatnik djelatnik in djelatniciZaUkloniti)
                {
                    if (djelatnik.IDDjelatnik == int.Parse(ddlVoditeljProjekta.SelectedValue))
                    {
                        lblError.Text = "Nije moguće obrisati djelatnika koji je voditelj tima";
                    }
                    else
                    {
                        Repozitorij.DeleteProjektDjelatnik(djelatnik.IDDjelatnik, idProjekt);
                    }
                }
            }
        }
        private void PopuniListu()
        {
            var projektId = int.Parse(ddlProjekt.SelectedValue);

            privremeniDjelatnici = new List <Djelatnik>();
            privremeniDjelatnici.AddRange(Repozitorij.GetDjelatniciNaProjektu(projektId));
            PrikaziDjelatnike();
            RemoveDuplikatiIzDdlDjelatnici();
        }