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();
            }
        }
Beispiel #3
0
            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);
            }