// GET: /Contact/CreateAddress public ActionResult CreateAddress(int?personId, int?organizationId) { if (!UserCanEdit(personId, organizationId)) { return(HttpNotFound()); } var model = new ContactAddressViewModel { PersonId = personId, OrganizationId = organizationId }; if (personId != null && (PersonHelper.GetSpouse(personId.Value) != null || PersonHelper.GetChildren(personId.Value).Any())) { model.EligibleAddressList = ContactHelper.GetEligibleAddressList(personId.Value).ToList(); model.ForFamily = true; } return(PartialView(model)); }
public ActionResult CreateAddress([Bind(Include = "Id,PersonId,OrganizationId,ForFamily,AddressId,AddressLine,City,State,PostalCode,Country")] ContactAddressViewModel model) { if (!UserCanEdit(model.PersonId, model.OrganizationId)) { return(HttpNotFound()); } if (model.AddressId == null && !ModelState.IsValid) { if (model.PersonId != null && model.ForFamily) { model.EligibleAddressList = ContactHelper.GetEligibleAddressList(model.PersonId.Value).ToList(); } return(View(model)); } if (model.AddressId == null) { var address = model.MapToAddress(); Database.Addresses.Add(address); Database.SaveChanges(); model.AddressId = address.Id; } var contactAddress = model.MapToContactAddress(); Database.ContactAddresses.Add(contactAddress); Database.SaveChanges(); if (model.ForFamily && model.PersonId != null && model.AddressId != null) { ContactHelper.SetAddressForFamily(model.PersonId.Value, model.AddressId.Value); } return(ReturnToSender(model.PersonId, model.OrganizationId)); }