Exemplo n.º 1
0
        public async Task <UserResult> CreateUser(NewUser newUser)
        {
            IEnumerable <IdentityError> validationResults = ValidationHelper.ValidateAsIdentity(newUser, serviceProvider);

            if (validationResults.Any())
            {
                return(new UserResult(IdentityResult.Failed(validationResults.ToArray())));
            }

            ApplicationUser user   = new(email : newUser.Email, firstName : newUser.FirstName, lastName : newUser.LastName, registrationDate : DateTime.UtcNow);
            IdentityResult  result = await userManager.CreateAsync(user, newUser.Password).ConfigureAwait(false);

            if (result.Succeeded)
            {
                newsletterService.SetSubscriptionBackground(newUser.Email, newUser.IsSubscribedNewsletter);
                await emailSender.SendEmailTemplated(user.Email, "Account Creation", "UserCreated").ConfigureAwait(false);

                return(new UserResult(user, result));
            }
            else
            {
                LogErrors("Creating user", result);
                return(new UserResult(result));
            }
        }