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,};
}