public async Task <IActionResult> ResetPassword([FromBody] CreatePassword pwdModel) { try { var userMaster = await _context.UserMaster.FindAsync(pwdModel.UserId); GenericMethods.HashSalt hashSalt = GenericMethods.GenerateHashSalt(pwdModel.Password); userMaster.PasswordSalt = hashSalt.saltPassword; userMaster.PasswordHash = hashSalt.hashPassword; userMaster.LinkExpiryDate = DateTime.Now; _context.Entry(userMaster).State = EntityState.Modified; await _context.SaveChangesAsync(); GenericMethods.Log(LogType.ActivityLog.ToString(), "ResetPassword: "******"-Password created successfully"); } catch (Exception ex) { GenericMethods.Log(LogType.ErrorLog.ToString(), "ResetPassword: " + ex.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } //catch (DbUpdateConcurrencyException) //{ // if (!UserMasterExists(id)) // { // return NotFound(); // } // else // { // throw; // } //} return(NoContent()); }
public async Task <IActionResult> ChangePassword([FromBody] ChangePassword pwdModel) { try { if (this.ModelState.IsValid) { var userMaster = await _context.UserMaster.FindAsync(pwdModel.UserId); if (userMaster != null && GenericMethods.VerifyPassword(pwdModel.OldPassword, userMaster.PasswordHash, userMaster.PasswordSalt)) { GenericMethods.HashSalt hashSalt = GenericMethods.GenerateHashSalt(pwdModel.NewPassword); userMaster.PasswordSalt = hashSalt.saltPassword; userMaster.PasswordHash = hashSalt.hashPassword; _context.Entry(userMaster).State = EntityState.Modified; await _context.SaveChangesAsync(); GenericMethods.Log(LogType.ActivityLog.ToString(), "ChangePassword: "******"-Password changed successfully"); return(Ok("Password changed successfully!")); } else { return(BadRequest("Old password is not matched with current password!")); } } else { return(BadRequest("Failed to change password!")); } } catch (Exception ex) { GenericMethods.Log(LogType.ErrorLog.ToString(), "ChangePassword: " + ex.ToString()); return(StatusCode(StatusCodes.Status500InternalServerError, ex)); } }