public string UpdatePersonXml(string xml) { var x = XDocument.Parse(xml); var p = Db.LoadPersonById(x.Root.Attribute("PeopleId").Value.ToInt()); var u = new APIPerson.Update(p); Address2 addr = null; foreach (var e in x.Root.Elements()) switch (e.Name.ToString()) { case "PersonalAddress": foreach (var pa in e.Elements()) u.UpdatePerson(pa); addr = Address2.New(e, p.PeopleId, p.CountryName); addr = ValidateAddress(addr); if (addr.Error.HasValue()) return serialize(addr); break; case "FamilyAddress": foreach (var fa in e.Elements()) u.UpdateFamily(fa); addr = Address2.New(e, p.PeopleId, p.Family.CountryName); addr = ValidateAddress(addr); if (addr.Error.HasValue()) return serialize(addr); break; case "EmContact": p.SetRecReg().Emcontact = e.Value; break; case "EmPhone": p.SetRecReg().Emphone = e.Value; break; default: break; } foreach (var e in x.Root.Elements()) switch (e.Name.ToString()) { case "PersonalAddress": case "FamilyAddress": case "SpouseName": case "FamilyId": case "EmContact": case "EmPhone": break; case "HomePhone": u.UpdateFamily(e); break; default: u.UpdatePerson(e); break; } p.LogChanges(Db, u.sb); p.Family.LogChanges(Db, u.fsb, p.PeopleId, Util.UserPeopleId.Value); Db.SubmitChanges(); return "<Success />"; }
public string UpdatePersonXml(string xml) { var x = XDocument.Parse(xml); var p = Db.LoadPersonById(x.Root.Attribute("PeopleId").Value.ToInt()); var u = new APIPerson.Update(p); Address2 addr = null; foreach (var e in x.Root.Elements()) { switch (e.Name.ToString()) { case "PersonalAddress": foreach (var pa in e.Elements()) { u.UpdatePerson(pa); } addr = Address2.New(e, p.PeopleId, p.CountryName); addr = ValidateAddress(addr); if (addr.Error.HasValue()) { return(serialize(addr)); } break; case "FamilyAddress": foreach (var fa in e.Elements()) { u.UpdateFamily(fa); } addr = Address2.New(e, p.PeopleId, p.Family.CountryName); addr = ValidateAddress(addr); if (addr.Error.HasValue()) { return(serialize(addr)); } break; case "EmContact": p.SetRecReg().Emcontact = e.Value; break; case "EmPhone": p.SetRecReg().Emphone = e.Value; break; default: break; } } foreach (var e in x.Root.Elements()) { switch (e.Name.ToString()) { case "PersonalAddress": case "FamilyAddress": case "SpouseName": case "FamilyId": case "EmContact": case "EmPhone": break; case "HomePhone": u.UpdateFamily(e); break; default: u.UpdatePerson(e); break; } } p.LogChanges(Db, u.sb); p.Family.LogChanges(Db, u.fsb, p.PeopleId, Util.UserPeopleId.Value); Db.SubmitChanges(); return("<Success />"); }