public static void AddOrUpdate( int osobaId, int vazbakOsobaId, int kod_angm, string funkce, decimal?share, DateTime?fromDate, DateTime?toDate, string zdroj = "" ) { using (Lib.Data.DbEntities db = new DbEntities()) { var existing = db.OsobaVazby .Where(m => m.OsobaID == osobaId && m.VazbakOsobaId == vazbakOsobaId && m.DatumOd == fromDate && m.DatumDo == toDate ) .FirstOrDefault(); if (existing == null) { existing = db.OsobaVazby .Where(m => m.OsobaID == osobaId && m.VazbakOsobaId == vazbakOsobaId && m.DatumOd == fromDate ) .FirstOrDefault(); } if (existing != null) { //update existing.TypVazby = kod_angm; existing.PojmenovaniVazby = funkce; if (existing.podil != share) { existing.podil = share; } if (existing.DatumOd != fromDate) { existing.DatumOd = fromDate; } if (existing.DatumDo != toDate) { existing.DatumDo = toDate; } existing.LastUpdate = DateTime.Now; } else //new { OsobaVazby af = new OsobaVazby(); af.OsobaID = osobaId; af.VazbakICO = ""; af.VazbakOsobaId = vazbakOsobaId; af.DatumOd = fromDate; af.DatumDo = toDate; af.TypVazby = kod_angm; af.PojmenovaniVazby = funkce; af.podil = share; af.LastUpdate = DateTime.Now; db.OsobaVazby.Add(af); } try { db.SaveChanges(); } catch (Exception e) { HlidacStatu.Util.Consts.Logger.Error("", e); throw; } } }
public static void AddOrUpdate( int osobaId, string dcerinkaIco, int kod_angm, string funkce, decimal?share, DateTime?fromDate, DateTime?toDate, string zdroj = "" ) { using (Lib.Data.DbEntities db = new DbEntities()) { var existing = db.OsobaVazby .Where(m => m.OsobaID == osobaId && m.VazbakICO == dcerinkaIco && m.DatumOd == fromDate && m.DatumDo == toDate ) .FirstOrDefault(); if (existing == null) { existing = db.OsobaVazby .Where(m => m.OsobaID == osobaId && m.VazbakICO == dcerinkaIco && m.DatumOd == fromDate ) .FirstOrDefault(); } if (existing != null) { //update existing.TypVazby = kod_angm; existing.PojmenovaniVazby = funkce; if (existing.podil != share) { existing.podil = share; } if (existing.DatumOd != fromDate) { existing.DatumOd = fromDate; } if (existing.DatumDo != toDate) { existing.DatumDo = toDate; } existing.LastUpdate = DateTime.Now; } else //new { OsobaVazby af = new OsobaVazby(); af.OsobaID = osobaId; af.VazbakICO = dcerinkaIco; af.DatumOd = fromDate; af.DatumDo = toDate; af.TypVazby = kod_angm; af.PojmenovaniVazby = funkce; af.podil = share; af.LastUpdate = DateTime.Now; db.OsobaVazby.Add(af); } db.SaveChanges(); } }
public Osoba Save(string user) { Osoba o = null; var t = this; DateTime?narozeni = Devmasters.DT.Util.ToDateTime(t.Narozeni, "yyyy-MM-dd"); //find existing if (this.Id > 0) { o = Osoby.GetById.Get(this.Id); } else if (narozeni.HasValue == false) { return(null); } if (o == null) { o = Osoba.Searching.GetByName(t.Jmeno, t.Prijmeni, narozeni.Value); } if (o == null) { o = Osoba.Searching.GetByNameAscii(t.Jmeno, t.Prijmeni, narozeni.Value); } if (o == null) { o = new Data.Osoba(); } o.Pohlavi = (t.Gender == gender.Žena) ? "f" : "m"; o.Jmeno = t.Jmeno; o.Narozeni = narozeni.Value; o.Umrti = Devmasters.DT.Util.ToDateTime(t.Umrti, "yyyy-MM-dd"); o.Prijmeni = t.Prijmeni; o.Status = (int)t.Status; o.NameId = t.NameId; o.Save(); foreach (var e in t.Event) { OsobaEvent ev = new OsobaEvent(); ev.pk = e.pk; ev.Organizace = e.Organizace; ev.AddInfoNum = e.AddInfoNum; ev.DatumOd = Devmasters.DT.Util.ToDateTime(e.DatumOd, "yyyy-MM-dd"); ev.DatumDo = Devmasters.DT.Util.ToDateTime(e.DatumDo, "yyyy-MM-dd"); ev.Note = e.Note; ev.Title = e.Title; ev.Type = (int)e.Typ; ev.AddInfo = e.AddInfo; ev.Zdroj = e.Zdroj; ev.OsobaId = o.InternalId; o.AddOrUpdateEvent(ev, user); } foreach (var v in t.Vazbyfirmy) { if (!string.IsNullOrEmpty(v.VazbaKOsoba)) { var os = Osoby.GetByNameId.Get(v.VazbaKOsoba); if (os != null) { OsobaVazby.AddOrUpdate(o.InternalId, os.InternalId, (int)v.TypVazby, v.Popis, 0, Devmasters.DT.Util.ToDateTime(v.DatumOd, "yyyy-MM-dd"), Devmasters.DT.Util.ToDateTime(v.DatumDo, "yyyy-MM-dd"), v.Zdroj); } } else { OsobaVazby.AddOrUpdate(o.InternalId, v.VazbaKIco, (int)v.TypVazby, v.Popis, 0, Devmasters.DT.Util.ToDateTime(v.DatumOd, "yyyy-MM-dd"), Devmasters.DT.Util.ToDateTime(v.DatumDo, "yyyy-MM-dd"), v.Zdroj); } } return(o); }