Example #1
0
        public async Task <IActionResult> ResetPassword(ResetPasswordModel input)
        {
            if (ModelState.IsValid)
            {
                HttpResponseMessage httpResponseMessage = await HttpClientRequest.PostAsync(ApiEndpoints.ResetPassword,
                                                                                            ConstructResetPasswordParams(input));

                if (httpResponseMessage.StatusCode == HttpStatusCode.OK)
                {
                    ResetPasswordResponseModel responseModel = JsonConvert.DeserializeObject <ResetPasswordResponseModel>(
                        await httpResponseMessage.Content.ReadAsStringAsync());

                    if (responseModel.code == RESET_PASSWORD_API_SUCCESS_CODE)
                    {
                        return(RedirectToAction("Index", "Form", new { area = "Login" }));
                    }
                    else
                    {
                        return(HandleResetPasswordFailAction(responseModel.code, input));
                    }
                }
                else
                {
                    return(View(input));
                }
            }
            else
            {
                return(View(input));
            }
        }
        public ResetPasswordResponseModel ResetPassword(ResetPasswordRequestModel RPRM)
        {
            ResetPasswordResponseModel rprm = new ResetPasswordResponseModel();

            try
            {
                if (RPRM.NewPassword != RPRM.ConfirmPassword)
                {
                    rprm.Response.Message    = "New Password not matched with confirm password!";
                    rprm.Response.StatusCode = 400;
                }
                else if (RPRM.NewPassword == RPRM.ConfirmPassword)
                {
                    var GetUserInfo = _ObjDBContext.Users.Where(s => s.Otp == RPRM.OTP).FirstOrDefault();
                    if (GetUserInfo != null)
                    {
                        GetUserInfo.SecurityStamp = HashHelper.GetPasswordSalt();
                        GetUserInfo.PasswordHash  = HashHelper.GetPasswordHash(GetUserInfo.SecurityStamp, RPRM.NewPassword);
                        _ObjDBContext.Entry(GetUserInfo).State = EntityState.Modified;
                        _ObjDBContext.SaveChanges();
                        rprm.Response.Message    = "Password is changed Successfully !";
                        rprm.Response.StatusCode = 200;
                    }
                    else
                    {
                        rprm.Response.Message    = "Wrong OTP";
                        rprm.Response.StatusCode = 401;
                    }
                }
            }
            catch (Exception ex)
            {
                rprm.Response.Message    = Convert.ToString(ex);
                rprm.Response.StatusCode = 400;
            }
            return(rprm);
        }