public async Task DeleteIndividualCustomerPhoneNumber(DeleteIndividualCustomerPhoneNumberViewModel viewModel) { logger.LogInformation("DeleteIndividualCustomerPhoneNumber 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.IndividualCustomer>(customer); Guard.Against.Null(customerToUpdate, nameof(customerToUpdate)); var personPhone = customerToUpdate.Person.PhoneNumbers.FirstOrDefault(p => p.PhoneNumberType == viewModel.PhoneNumberType && p.PhoneNumber == viewModel.PhoneNumber ); Guard.Against.Null(personPhone, nameof(personPhone)); customerToUpdate.Person.PhoneNumbers.Remove(personPhone); logger.LogInformation("Updating customer {@Customer}", customer); await customerApiClient.UpdateCustomerAsync(viewModel.AccountNumber, customerToUpdate); logger.LogInformation("Customer updated successfully"); }
public DeleteIndividualCustomerPhoneNumberViewModel DeleteIndividualCustomerPhoneNumber(string accountNumber, string customerName, string phoneNumberType, string phoneNumber) { logger.LogInformation("DeleteIndividualCustomerPhoneNumber called"); var vm = new DeleteIndividualCustomerPhoneNumberViewModel { AccountNumber = accountNumber, CustomerName = customerName, PhoneNumberType = phoneNumberType, PhoneNumber = phoneNumber }; return(vm); }