public virtual async Task <IActionResult> SendResetUserPasswordMail(Guid userId) { var user = await this.identityService.GetUserByIdAsync <User>(userId); if (user != null) { var resetToken = await this.identityService.GeneratePasswordResetTokenAsync(user); var resetPasswordUrl = this.Url.Action("ResetPassword", "AdminAccount", new { userId = userId, resetToken = resetToken }, this.HttpContext.Request.Scheme); var mailModel = new UserResetPasswordEmailModel { Email = user.Email, Subject = "Password Reset", GivenName = user.FirstName, Surname = user.LastName, resetPasswordUrl = resetPasswordUrl, }; var result = await this.emailService.SendEmailAsync("UserResetPasswordEmailView", mailModel); if (result.Success) { this.TempData["SuccessStatusMessage"] = $"Password reset email to {mailModel.Email} has been sent successfully."; } else { this.TempData["ErrorStatusMessage"] = $"An error occured while sending email to {mailModel.Email}."; } return(this.RedirectToAction(nameof(this.GetAll))); } return(this.NotFound()); }
public virtual async Task <IActionResult> CreateNewUser(AdminCreateNewUserViewModel model) { if (this.ModelState.IsValid) { var selectedRole = await this.EntityManager.GetEntityAsync <Role, Role>(model.Role); var user = await this.authenticationService.CreateUserAsync <User>( model.Email, StringFunctions.GenerateRandomPassword(), model.FirstName, model.LastName, new string[] { selectedRole.Name }); if (user != null) { var resetToken = await this.identityService.GeneratePasswordResetTokenAsync(user); var resetPasswordUrl = this.Url.Action("ResetPassword", "AdminAccount", new { userId = user.Id, resetToken = resetToken }, this.HttpContext.Request.Scheme); var mailModel = new UserResetPasswordEmailModel { Email = user.Email, Subject = "Password Reset", GivenName = user.FirstName, Surname = user.LastName, resetPasswordUrl = resetPasswordUrl, }; var result = await this.emailService.SendEmailAsync("UserResetPasswordEmailView", mailModel); if (result.Success) { this.TempData["SuccessStatusMessage"] = $"User has been created successfully."; } else { this.TempData["ErrorStatusMessage"] = $"An error occured while creating user."; } return(this.RedirectToAction(nameof(this.GetAll))); } } return(this.View(model)); }