public async Task DeleteContactPhoneNumber(DeleteContactPhoneNumberViewModel viewModel) { logger.LogInformation("DeleteContactPhoneNumber called"); logger.LogInformation("Getting customer for {AccountNumber}", viewModel.AccountNumber); var customer = await customerApiClient.GetCustomerAsync <Infrastructure.ApiClients.CustomerApi.Models.GetCustomer.StoreCustomer>( viewModel.AccountNumber ); logger.LogInformation("Retrieved customer {@Customer}", customer); Guard.Against.Null(customer, nameof(customer)); var customerToUpdate = mapper.Map <Infrastructure.ApiClients.CustomerApi.Models.UpdateCustomer.StoreCustomer>(customer); Guard.Against.Null(customerToUpdate, nameof(customerToUpdate)); var contact = customerToUpdate.Contacts.FirstOrDefault(c => c.ContactType == viewModel.ContactType && c.ContactPerson.FullName() == viewModel.ContactName); Guard.Against.Null(contact, nameof(contact)); var personPhone = contact.ContactPerson.PhoneNumbers.FirstOrDefault(p => p.PhoneNumberType == viewModel.PhoneNumberType && p.PhoneNumber == viewModel.PhoneNumber ); Guard.Against.Null(personPhone, nameof(personPhone)); contact.ContactPerson.PhoneNumbers.Remove(personPhone); logger.LogInformation("Updating customer {@Customer}", customer); await customerApiClient.UpdateCustomerAsync(viewModel.AccountNumber, customerToUpdate); logger.LogInformation("Customer updated successfully"); }
public DeleteContactPhoneNumberViewModel DeleteContactPhoneNumber(string accountNumber, string contactType, string contactName, string phoneNumberType, string phoneNumber) { logger.LogInformation("DeleteContactPhoneNumber called"); var vm = new DeleteContactPhoneNumberViewModel { AccountNumber = accountNumber, ContactType = contactType, ContactName = contactName, PhoneNumberType = phoneNumberType, PhoneNumber = phoneNumber }; return(vm); }