private static Sponzoring FindDuplicate(Sponzoring sponzoring, DbEntities db)
        {
            return(null);

            // u sponzoringu nekontrolujeme organizaci, ani rok, protože to není historicky konzistentní
            // U sponzoringu nelze kontrolovat duplicity, protože sponzorské dary se u některých stran
            // vykazují všechny k jednomu datu. Osoba může darovat vícekrát stejnou částku a při kontrole
            // duplicit bychom to přepisovali
            var result = db.Sponzoring.Where(s => s.Id == sponzoring.Id).FirstOrDefault();

            if (result != null)
            {
                return(result);
            }

            return(db.Sponzoring
                   .Where(s =>
                          s.IcoDarce == sponzoring.IcoDarce &&
                          s.IcoPrijemce == sponzoring.IcoPrijemce &&
                          s.OsobaIdDarce == sponzoring.OsobaIdDarce &&
                          s.OsobaIdPrijemce == sponzoring.OsobaIdPrijemce &&
                          s.Typ == sponzoring.Typ &&
                          s.Hodnota == sponzoring.Hodnota &&
                          s.DarovanoDne == sponzoring.DarovanoDne
                          )
                   .FirstOrDefault());
        }
        private static Sponzoring UpdateSponzoring(Sponzoring sponzoringToUpdate, Sponzoring sponzoring, string user, DbEntities db)
        {
            var sponzoringOriginal = sponzoringToUpdate.ShallowCopy();

            if (!string.IsNullOrWhiteSpace(sponzoring.IcoDarce))
            {
                sponzoringToUpdate.IcoDarce = sponzoring.IcoDarce;
            }
            if (sponzoring.OsobaIdDarce > 0)
            {
                sponzoringToUpdate.OsobaIdDarce = sponzoring.OsobaIdDarce;
            }

            sponzoringToUpdate.Edited    = DateTime.Now;
            sponzoringToUpdate.UpdatedBy = user;

            sponzoringToUpdate.DarovanoDne     = sponzoring.DarovanoDne;
            sponzoringToUpdate.Hodnota         = sponzoring.Hodnota;
            sponzoringToUpdate.IcoPrijemce     = sponzoring.IcoPrijemce;
            sponzoringToUpdate.OsobaIdPrijemce = sponzoring.OsobaIdPrijemce;
            sponzoringToUpdate.Popis           = sponzoring.Popis;
            sponzoringToUpdate.Typ             = sponzoring.Typ;
            sponzoringToUpdate.Zdroj           = sponzoring.Zdroj;

            db.SaveChanges();

            Audit.Add <Sponzoring>(Audit.Operations.Update, user, sponzoringToUpdate, sponzoringOriginal);
            return(sponzoringToUpdate);
        }
        public static Sponzoring CreateOrUpdate(Sponzoring sponzoring, string user)
        {
            using (DbEntities db = new DbEntities())
            {
                Sponzoring sponzoringToUpdate = FindDuplicate(sponzoring, db);

                if (sponzoringToUpdate != null)
                {
                    return(UpdateSponzoring(sponzoringToUpdate, sponzoring, user, db));
                }

                return(CreateSponzoring(sponzoring, user, db));
            }
        }
        private static Sponzoring CreateSponzoring(Sponzoring sponzoring, string user, DbEntities db)
        {
            if (sponzoring.OsobaIdDarce == 0 &&
                string.IsNullOrWhiteSpace(sponzoring.IcoDarce))
            {
                throw new Exception("Cant attach sponzoring to a person or to a company since their reference is empty");
            }

            sponzoring.Created   = DateTime.Now;
            sponzoring.Edited    = DateTime.Now;
            sponzoring.UpdatedBy = user;

            db.Sponzoring.Add(sponzoring);
            db.SaveChanges();

            Audit.Add(Audit.Operations.Create, user, sponzoring, null);
            return(sponzoring);
        }
Beispiel #5
0
        private static Sponzoring FindDuplicate(Sponzoring sponzoring, DbEntities db)
        {
            // u sponzoringu nekontrolujeme organizaci, ani rok, protože to není historicky konzistentní
            var result = db.Sponzoring.Where(s => s.Id == sponzoring.Id).FirstOrDefault();

            if (result != null)
            {
                return(result);
            }

            return(db.Sponzoring
                   .Where(s =>
                          s.IcoDarce == sponzoring.IcoDarce &&
                          s.IcoPrijemce == sponzoring.IcoPrijemce &&
                          s.OsobaIdDarce == sponzoring.OsobaIdDarce &&
                          s.OsobaIdPrijemce == sponzoring.OsobaIdPrijemce &&
                          s.Typ == sponzoring.Typ &&
                          s.Hodnota == sponzoring.Hodnota &&
                          s.DarovanoDne == sponzoring.DarovanoDne
                          )
                   .FirstOrDefault());
        }