// PUT: /api/contactinfo public void Put([FromBody] ContactInfoViewModel contactInfoViewModel) { // Get Person data model from the data service // we do not need account nor transactions var person = service.GetPersonByUsername(authenticatedUser, new PersonIncludes { Accounts = false, Addressses = false, Phones = false, AccountTransactions = false }); // Update the Email Address in the person model person.EmailAddress = contactInfoViewModel.EmailAddress; person.Phones = new List<Phone>(); person.Addresses = new List<PersonAddressAssn>(); // Add the phone numbers to the person model foreach(PhoneViewModel phoneViewModel in contactInfoViewModel.PhoneNumbers) { if (!string.IsNullOrEmpty(phoneViewModel.Number)) { var phone = new Phone { PhoneTypeID = phoneViewModel.PhoneTypeID, Number = phoneViewModel.Number }; person.Phones.Add(phone); } } // Add the addresses to the person model foreach(AddressViewModel addressViewModel in contactInfoViewModel.Addresses) { if (!string.IsNullOrEmpty(addressViewModel.StreetAddress)) { var address = new PersonAddressAssn { AddressTypeID = addressViewModel.AddressTypeID, Address = new Address { StreetAddress = addressViewModel.StreetAddress, City = addressViewModel.City, State = addressViewModel.State, Zip = addressViewModel.Zip } }; person.Addresses.Add(address); } } // Update the data store var oppStatus = service.UpdatePerson(person); // Return success or error state if (!oppStatus.Success) { throw new Exception(oppStatus.Messages[0]); } }
private void updatePhone(Person person, Person updatedPerson, int phoneType, IFootlooseFSUnitOfWork unitOfWork) { var updatePhone = updatedPerson.Phones.Where(p => p.PhoneTypeID == phoneType).FirstOrDefault(); if (updatePhone == null) { var phone = person.Phones.Where(p => p.PhoneTypeID == phoneType).FirstOrDefault(); if (phone != null) unitOfWork.Phones.Delete(phone); } else { var phone = person.Phones.Where(p => p.PhoneTypeID == phoneType).FirstOrDefault(); if (phone == null) { phone = new Phone(); phone.PersonID = updatePhone.PersonID; phone.PhoneTypeID = updatePhone.PhoneTypeID; person.Phones.Add(phone); } phone.Number = updatePhone.Number; } }