Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        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
             }
         };
     }));
 }