PRTools.Domain.Commands.AccountCreator.Execute C# (CSharp) Méthode

Execute() public méthode

public Execute ( string username, CreateAccountRequest createAccountRequest ) : CreateAccountResponse
username string
createAccountRequest CreateAccountRequest
Résultat CreateAccountResponse
        public CreateAccountResponse Execute(string username, CreateAccountRequest createAccountRequest)
        {
            if (!_authorizationService.CanExecute(username, "CreateAccounts"))
                return new CreateAccountResponse
                           {
                               Success = false,
                               Errors = new List<string>
                                            {
                                                "User is not authorized to Create Accounts",
                                            },
                           };

            IValidator<CreateAccountRequest> createAccountValidator =
                _validatorFactory.GetValidator<CreateAccountRequest>();
            ValidationResult validationResult = createAccountValidator.Validate(createAccountRequest);
            if (!validationResult.IsValid)
                return new CreateAccountResponse
                           {
                               Success = false,
                               Errors = validationResult.Errors.Select(x => x.ErrorMessage),
                           };

            if (_accountRepository.UserNameExists(createAccountRequest.Username))
                return new CreateAccountResponse
                           {
                               Success = false,
                               Errors =
                                   new List<string>
                                       {"The username " + createAccountRequest.Username + " is unavailable."}
                           };

            string tempPassword = createAccountRequest.Username + "_password";
            string encryptedTempPassword = _cryptographyService.Encrypt(tempPassword);

            _accountRepository.Create(createAccountRequest, encryptedTempPassword);

            string loginUrl = ConfigurationManager.AppSettings["HostUrl"];

            var message = new StringBuilder();
            message.Append("<html><head><title></title></head><body>");
            message.Append("<div style='font-size: 12px;font-weight: bold;font-style: italic;'>");
            message.Append("Please login at " + loginUrl + " using the following information<br/>");
            message.Append("Username: " + createAccountRequest.Username + "<br/>");
            message.Append("Password: " + tempPassword);
            message.Append("</div></body></html>");
            _emailService.SendEmail(new SendMailRequest
                                        {
                                            To = createAccountRequest.EmailAddress,
                                            Subject = "Your Brand Journalists Employee account has been created",
                                            Message = message.ToString(),
                                        });

            return new CreateAccountResponse
                       {
                           Success = true,
                       };
        }