public async Task <ActionResult> ActivateUser(AdminActivateUserModel model) { if (!ModelState.IsValid) { return(View("ActivateUserModal", model)); } var result = await AdminUserWriter.ActivateUser(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("ActivateUserModal", model)); } return(CloseModalSuccess(result.Message)); }
public async Task <IWriterResult> ActivateUser(string adminUserId, AdminActivateUserModel model) { string userId = ""; EmailMessageModel emailModel = new EmailMessageModel(); using (var context = DataContextFactory.CreateContext()) { var user = await context.Users.FirstOrDefaultNoLockAsync(x => x.UserName == model.UserName); if (user == null) { return(new WriterResult(false, $"User '{model.UserName}' not found")); } if (user.EmailConfirmed) { return(new WriterResult(false, $"User '{model.UserName}' already activated")); } userId = user.Id; user.EmailConfirmed = true; context.LogActivity(adminUserId, $"Activating user {user.UserName}"); await context.SaveChangesAsync(); var emailParameters = new List <object> { model.UserName }; emailModel = new EmailMessageModel { BodyParameters = emailParameters.ToArray(), Destination = user.Email, EmailType = EmailTemplateType.AccountActivated }; } await UserSyncService.SyncUser(userId); await EmailService.SendEmail(emailModel); return(new WriterResult(true, $"Successfully activated {model.UserName} - Email sent.")); }