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); }
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()); }