示例#1
0
        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");
        }
示例#2
0
        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);
        }