Example #1
0
        public async Task UpdateIndividual_OK()
        {
            //Arrange
            var mockLogger           = new Mock <ILogger <CustomerService> >();
            var mockCustomerApi      = new Mock <customerApi.ICustomerApiClient>();
            var mockReferenceDataApi = new Mock <referenceDataApi.IReferenceDataApiClient>();
            var mockSalesPersonApi   = new Mock <salesPersonApi.ISalesPersonApiClient>();

            var svc = new CustomerService(
                mockLogger.Object,
                Mapper.CreateMapper(),
                mockCustomerApi.Object,
                mockReferenceDataApi.Object,
                mockSalesPersonApi.Object
                );

            //Act
            var viewModel = new IndividualCustomerViewModel
            {
                AccountNumber = "AW00000001"
            };
            await svc.UpdateIndividual(viewModel);

            //Assert
            mockCustomerApi.Verify(x => x.UpdateCustomerAsync(
                                       It.IsAny <string>(),
                                       It.IsAny <customerApi.Models.UpdateCustomer.Customer>())
                                   );
        }
Example #2
0
        public ActionResult SaveIndividualCustomer(IndividualCustomerViewModel model, ActionType actionType)
        {
            Logger.Debug("SaveIndividualCustomer|Action type: " + actionType);

            if (actionType == ActionType.Save)
            {
                try
                {
                    if (CustomerBO.CheckIfIdCombinationExists(
                            Int32.Parse(model.IdType), model.IdNumber, model.IdIssuedCountry, model.Id))
                    {
                        TempData["MessageType"]        = MessageType.Error;
                        TempData["MessageDescription"] = CommonResources.MessageIdAlreadyExists;

                        TempData["CustomerDetailModel"] = model;
                        return(RedirectToAction("ViewCustomerDetails"));
                    }

                    IIndividualCustomerVO customer = (IndividualCustomerVO)
                                                     CustomerMapper.Map(model, typeof(IndividualCustomerViewModel), typeof(IndividualCustomerVO));
                    customer.LastUpdateBy = User.Identity.Name;

                    if (customer.Id == 0)
                    {
                        customer = CustomerBO.CreateIndividualCustomer(customer);
                    }
                    else
                    {
                        IIndividualCustomerVO sessionCustomer = (IIndividualCustomerVO)Session["SessionCustomer"];
                        customer = CustomerBO.UpdateIndividualCustomer(sessionCustomer, customer);
                    }

                    model = (IndividualCustomerViewModel)
                            CustomerMapper.Map(customer, typeof(IIndividualCustomerVO), typeof(IndividualCustomerViewModel));

                    Session["SessionCustomer"]     = customer;
                    TempData["MessageType"]        = MessageType.Success;
                    TempData["MessageDescription"] = CommonResources.MessageSaveSuccess;
                }
                catch (Exception exception)
                {
                    Logger.Debug("Exception encountered: " + exception.StackTrace);

                    TempData["MessageType"]        = MessageType.Error;
                    TempData["MessageDescription"] = CommonResources.MessageSaveError + exception.Message;
                }

                TempData["CustomerDetailModel"] = model;
                return(RedirectToAction("ViewIndividualDetails"));
            }

            return(RedirectToAction("Welcome", "Home"));
        }
        public async Task UpdateIndividual(IndividualCustomerViewModel viewModel)
        {
            logger.LogInformation("UpdateIndividual called with view model {@ViewModel}", viewModel);
            Guard.Against.Null(viewModel, nameof(viewModel));

            var individualCustomer = mapper.Map <ApiClients.CustomerApi.Models.UpdateCustomer.IndividualCustomer>(viewModel);

            logger.LogInformation("Calling Customer API to update customer");
            await customerApiClient.UpdateCustomerAsync(viewModel.AccountNumber, individualCustomer);

            logger.LogInformation("Customer successfully updated");
        }