Ejemplo n.º 1
0
        public async Task <ActionResult> AdminChangeEmail(AdminChangeEmailViewModel model)
        {
            if (model.Email == model.EmailBefore && model.UserName == model.UserNameBefore)
            {
                TempData["SaveResult"] = $"No change made for {model.UserName}.";
                return(RedirectToAction("Index", "Users"));
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var entity =
                ctx
                .Users
                .Single(e => e.Id == model.UserId);

            entity.UserName = model.UserName;
            entity.Email    = model.Email;

            bool success = true;

            try { ctx.SaveChanges(); }
            catch { success = false; }

            if (success)
            {
                TempData["SaveResult"] = $"Profile updated for {model.UserName}.";
            }
            else
            {
                TempData["SaveResult"] = $"Error updating Profile for {model.UserName}. Please retry.";
            }

            return(RedirectToAction("Index", "Users"));
        }
Ejemplo n.º 2
0
 public ActionResult AdminChangeEmail(string userId)
 {
     using (var ctx = new ApplicationDbContext())
     {
         if (ctx.Users.Count(e => e.Id == userId) == 0)
         {
             TempData["SaveResult"] = $"Error finding User. Please retry.";
             return(RedirectToAction("Index", "Users"));
         }
         var entity =
             ctx
             .Users
             .Single(e => e.Id == userId);
         AdminChangeEmailViewModel model =
             new AdminChangeEmailViewModel
         {
             UserId         = entity.Id,
             UserNameBefore = entity.UserName,
             UserName       = entity.UserName,
             EmailBefore    = entity.Email,
             Email          = entity.Email
         };
         return(View(model));
     }
 }
Ejemplo n.º 3
0
        public async Task <IActionResult> ChangeEmailRequest()
        {
            AdminChangeEmailViewModel model = new AdminChangeEmailViewModel();
            var currentUser = await this.CurrentUserProvider.GetCurrentUserAsync();

            model.NewEmail = currentUser.Email;
            return(this.View(model));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> ChangeEmailRequest(AdminChangeEmailViewModel model)
        {
            try
            {
                var currentUser = await this.CurrentUserProvider.GetCurrentUserAsync();

                var request = new RequestChangeEmailCommand()
                {
                    UserId   = currentUser.Id,
                    NewEmail = model.NewEmail,
                };

                request.ConfigureCallbackOptions("admin/manage/change-email", false);
                var requestResult = await this.Mediator.Send(request);

                if (requestResult.Succeeded)
                {
                    this.ShowSuccessNotification("Email request has been sent successfully. Check your email for confirmation.");
                    return(this.View());
                }
                else
                {
                    this.ShowErrorNotification("Email request has not been sent successfully.");
                    return(this.View(model));
                }
            }
            catch (ValidationException ex)
            {
                this.ModelState.ApplyValidationException(ex, true);
            }
            catch (Exception)
            {
                this.ModelState.AddModelError(string.Empty, "Change email request operation has failed.");
            }

            return(this.View(model));
        }