public ActionResult CompleteResetPassword(CompleteResetPasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var    forgotPasswordRequest = UnitOfWork.Users.GetForgotPasswordRequest(model.RequestId);
            string error;

            if (!TryValidateForgotPasswordRequest(forgotPasswordRequest, out error))
            {
                return(View("CompleteResetPasswordError", error));
            }

            forgotPasswordRequest.ApprovedDateTime  = DateTime.Now;
            forgotPasswordRequest.ApproverIpAddress = new IpAddressResolver(HttpContext).GetUserHostIp();

            forgotPasswordRequest.User.Password        = PasswordHash.HashPassword(model.NewPassword);
            forgotPasswordRequest.User.UpdatedDate     = DateTime.Now;
            forgotPasswordRequest.User.UpdatedByUserId = forgotPasswordRequest.User.Id;

            UnitOfWork.SaveChanges();

            return(RedirectToAction("CompleteResetPasswordSuccess"));
        }
        public ActionResult CompleteResetPassword(Guid id)
        {
            var    forgotPasswordRequest = UnitOfWork.Users.GetForgotPasswordRequest(id);
            string error;

            if (!TryValidateForgotPasswordRequest(forgotPasswordRequest, out error))
            {
                return(View("CompleteResetPasswordError", error));
            }
            var model = new CompleteResetPasswordModel {
                RequestId = id
            };

            return(View(model));
        }