//Password Change public async Task ChangePassword() { if (CurrentPasswordValidation()) { if (PasswordValidation() && PasswordConfirmationValidation()) { if (member == null) { return; } Model.Update.ChangePasswordModel request = new Model.Update.ChangePasswordModel { NewPassword = Password, PasswordConfirmation = PassConfirmation, OldPassword = CurrentPassword }; var result = await _memberService.PostMethod <Model.Response.Member>(member.Id, request, "ChangePassword"); if (result != null || result != default(Model.Response.Member)) { await Application.Current.MainPage.DisplayAlert("Info", "Succesfully updated password", "Ok"); Application.Current.MainPage = new NavigationPage(new LoginPage()); } else { await Application.Current.MainPage.DisplayAlert("Error", "There was an error", "Cancel"); } } } }
public async Task <Model.Response.MemberLL> ChangePassword(int id, Model.Update.ChangePasswordModel model) { var member = await _context.Members.FirstOrDefaultAsync(x => x.Id == id); if (member == null) { throw new UserException("User not found!"); } var oldHash = _securityService.GenerateHash(member.PasswordSalt, model.OldPassword); if (oldHash != member.PasswordHash) { throw new UserException("Wrong old password"); } member.PasswordHash = _securityService.GenerateHash(member.PasswordSalt, model.NewPassword); await _context.SaveChangesAsync(); return(_mapper.Map <Model.Response.MemberLL>(member)); }