Beispiel #1
0
        protected override void updateEntity(DomainObject entity)
        {
            RezultatskoTakmicenjeDescription desc = (RezultatskoTakmicenjeDescription)entity;

            DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO().Update(desc);

            Takmicenje takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId);
            RezultatskoTakmicenjeDAO      rezTakDAO     = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();
            IList <RezultatskoTakmicenje> rezTakmicenja = rezTakDAO.FindByTakmicenje(takmicenjeId);

            TakmicarskaKategorijaDAO takKatDAO = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO();

            IList <RezultatskoTakmicenje> istaRezTakmicenja = new List <RezultatskoTakmicenje>();
            IList <RezultatskoTakmicenje> vecaRezTakmicenja = new List <RezultatskoTakmicenje>();
            int redBroj = 0;

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                if (rt.TakmicenjeDescription.RedBroj < desc.RedBroj)
                {
                    if (rt.RedBroj > redBroj)
                    {
                        redBroj = rt.RedBroj;
                    }
                }
                else if (rt.TakmicenjeDescription.RedBroj > desc.RedBroj)
                {
                    vecaRezTakmicenja.Add(rt);
                }
            }

            foreach (TakmicarskaKategorija k in sveKategorije)
            {
                if (SelKategorije.Contains(k) && oldKategorije.Contains(k))
                {
                    RezultatskoTakmicenje rt = rezTakDAO.FindByKatDesc(k, desc);
                    rt.RedBroj = (byte)++redBroj;
                    rezTakDAO.Update(rt);
                }
                else if (SelKategorije.Contains(k) && !oldKategorije.Contains(k))
                {
                    takKatDAO.Attach(k, false);
                    rezTakDAO.Add(createRezultatskoTakmicenje(takmicenje, k, desc, ++redBroj));
                }
                else if (!SelKategorije.Contains(k) && oldKategorije.Contains(k))
                {
                    RezultatskoTakmicenje rt = rezTakDAO.FindByKatDesc(k, desc);
                    rezTakDAO.Delete(rt);
                }
            }

            foreach (RezultatskoTakmicenje rt in vecaRezTakmicenja)
            {
                rt.RedBroj = (byte)++redBroj;
                rezTakDAO.Update(rt);
            }
        }