public string ForgotPassword(ForgotPassswordModel model) { string token = Request.Headers.Authorization.ToString(); int UserId = this._caching.GetSessionData(token).UserId; int OrganizationId = this._caching.GetSessionData(token).OrganizationId; bool result = this._IUserRepository.ForgotPassword(model, UserId, OrganizationId); if (result) { return("Password sent successfully"); } else { return("UserName doesn't exists"); } }
public bool ForgotPassword(ForgotPassswordModel model, int LoggedInUserId, int LoggedInOrganizationId) { bool result = false; User user = base.GetFirst(x => x.UserName.Equals(model.UserName)); string password = AES.Decrypt(user.Password); if ( //user.SecurityQuestion1 == model.SecurityQuestion1 user.SecurityAnswer1 == model.SecurityAnswer1 //&& user.SecurityQuestion2 == model.SecurityQuestion2 && user.SecurityAnswer2 == model.SecurityAnswer2 ) { StringBuilder emailBody = new StringBuilder(System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/HtmlTemplates/ForgotPasswordEmailTemplate.html"))); emailBody.Replace("$$UserName$$", user.UserName).Replace("$$Password$$", password); new EmailManagement().SendMailToUserWithCCANdAttachment(emailBody.ToString(), "Forgot Password", null, user.EmailID, null, new List <byte[]>(), new List <string>()); result = true; } return(result); }
public async Task <GenericResponseModel <AccountForgotChangePasswordModel> > ForgotPasswordChange([FromUri] string token, [FromBody] ForgotPassswordModel viewModel) { return(await Task.Run(async() => { var details = new AccountForgotChangePasswordModel(); try { ErrorCode = "800.93"; if (token != viewModel.Token) { ErrorCode = "800.931"; throw new Exception("Invalid token."); } var response = await accountService.ForgotPasswordTokenValidator(token); if (!response.Item2) { ErrorCode = "800.932"; throw new Exception(response.Item3); } Account account = response.Item1; if (account.Username != viewModel.Username) { ErrorCode = "800.933"; throw new Exception("Invalid account or password!"); } if (crypto.Decrypt(account.Password) != viewModel.CurrentPassword) { ErrorCode = "800.934"; throw new Exception("Invalid account or password!"); } if (viewModel.NewPassword == viewModel.CurrentPassword) { ErrorCode = "800.935"; throw new Exception("New password is the same as the previous password."); } account.Password = crypto.Encrypt(viewModel.NewPassword); account = await Service.UpdateReturnAsync(account); details = new AccountForgotChangePasswordModel { IsSend = false, Message = "Updated", IsChange = true, Username = viewModel.Username }; bool isSend = await accountService.AccountForgotPasswordEmail(account, "XPay.World Forgot Password Successfully Updated"); details = new AccountForgotChangePasswordModel { IsSend = isSend, Message = "Success", IsChange = true, Username = viewModel.Username }; } catch (Exception ex) { string message = ex.Message + (!string.IsNullOrEmpty(ex.InnerException.Message) && ex.Message != ex.InnerException.Message ? " Reason : " + ex.InnerException.Message : string.Empty); ErrorDetails.Add(message); ErrorMessage = message; MethodBase methodBase = MethodBase.GetCurrentMethod(); StackTrace trace = new StackTrace(ex, true); string sourceFile = trace.GetFrame(0).GetFileName(); await ErrorLogs.Write(new ErrorLogsModel { Application = Assembly.GetExecutingAssembly().GetName().Name, Controller = GetType().Name, CurrentAction = methodBase.Name.Split('>')[0].TrimStart('<'), ErrorCode = ErrorCode, Message = message, SourceFile = sourceFile, LineNumber = trace.GetFrame(0).GetFileLineNumber(), StackTrace = ex.ToString(), Method = methodBase.Name.Split('>')[0].TrimStart('<') }, ex); details = new AccountForgotChangePasswordModel { IsSend = false, Message = message, IsChange = false, Username = viewModel.Username }; } return new GenericResponseModel <AccountForgotChangePasswordModel>() { Code = string.IsNullOrEmpty(ErrorMessage) ? Utilities.Enums.CodeStatus.Success : Utilities.Enums.CodeStatus.Error, CodeStatus = string.IsNullOrEmpty(ErrorMessage) ? Utilities.Enums.CodeStatus.Success.ToString() : Utilities.Enums.CodeStatus.Error.ToString(), ReferenceObject = string.IsNullOrEmpty(ErrorMessage) ? details : null, ErrorMessage = string.IsNullOrEmpty(ErrorMessage) ? null : new ErrorMessage { Details = ErrorDetails, ErrNumber = ErrorCode, Message = ErrorMessage } }; })); }