private void AddPerson(SearchPersonModel p, IList<SearchPersonModel> list, int originid, int? entrypointid) { if (p.IsNew) p.AddPerson(originid, p.EntryPoint.Value.ToInt(), p.Campus.Value.ToInt()); else { if (entrypointid != 0 && (!p.person.EntryPointId.HasValue || p.person.EntryPointId == 0)) p.person.EntryPointId = entrypointid; if (originid != 0 && (!p.person.OriginId.HasValue || p.person.OriginId == 0)) p.person.OriginId = originid; DbUtil.Db.SubmitChanges(); } if (p.FamilyId < 0) // fix up new family pointers { var q = from m in list where m.FamilyId == p.FamilyId select m; var list2 = q.ToList(); foreach (var m in list2) m.FamilyId = p.person.FamilyId; } Util2.CurrentPeopleId = p.person.PeopleId; Session["ActivePerson"] = p.person.Name; }