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