PRTools.Domain.Commands.CustomerCreator.Execute C# (CSharp) Method

Execute() public method

public Execute ( string username, CreateCustomerRequest createCustomerRequest ) : CreateCustomerResponse
username string
createCustomerRequest CreateCustomerRequest
return CreateCustomerResponse
        public CreateCustomerResponse Execute(string username, CreateCustomerRequest createCustomerRequest)
        {
            if (!_authorizationService.CanExecute(username, "CreateCustomers"))
                return new CreateCustomerResponse(new List<string>
                                                      {
                                                          "User is not authorized to Create Customers.",
                                                      })
                           {
                               Success = false,
                           };

            var validationResult = _createCustomerRequestValidator.Validate(createCustomerRequest);
            if(!validationResult.IsValid)
                return new CreateCustomerResponse(validationResult.Errors.Select(x=>x.ErrorMessage))
                {
                    Success = false,
                };

            if (_customerRepository.NameExists(createCustomerRequest.Name))
                return
                    new CreateCustomerResponse(new List<string>
                                                   {
                                                       "The username " + createCustomerRequest.Name + " is unavailable."
                                                   })
                        {
                            Success = false,
                        };

            _customerRepository.Create(createCustomerRequest);

            return new CreateCustomerResponse {Success = true,};
        }