public IHttpActionResult Edit(AccountEditViewModelItem request) { AccountEditViewModel viewmodel = new AccountEditViewModel(); UserDataController dataCtrl = new UserDataController(); try { User updateModel = dataCtrl.GetItem(request.ID); updateModel.ToModel(request); if (request.OldPassword != null && request.NewPassword1 != null && request.NewPassword2 != null) { var newPassword = PasswordHelper.ChangePassword(dataCtrl.GetItem(UserHelper.CurrentUserID), request.OldPassword, request.NewPassword1, request.NewPassword2); dataCtrl.ChangePassword(UserHelper.CurrentUserID, newPassword); viewmodel.AddSuccessMessage("Passwort wurde geändert."); } updateModel = dataCtrl.Update(updateModel); viewmodel.Data.FromModel(updateModel); } catch (WrongPasswordException) { return(Warning(viewmodel, "Das eingegebene Passwort stimmt nicht.")); } catch (PasswordsNotEqualException) { return(Warning(viewmodel, "Die eingegebenen Passwörter stimmt nicht überein.")); } catch (Exception ex) { return(Error(viewmodel, ex)); } return(Ok(viewmodel, "Profil wurde aktualisiert.")); }
public IHttpActionResult ResetPassword(String code, PasswordChangeRequest request) { BaseViewModel viewmodel = new BaseViewModel(); UserDataController dataCtrl = new UserDataController(); try { var user = dataCtrl.GetItems().SingleOrDefault(x => x.PasswordReset == code); if (user == null) { return(Warning(viewmodel, "Der Link ist abgelaufen.")); } String newPwd = PasswordHelper.ChangePassword(user, request.Password1, request.Password2); dataCtrl.ChangePassword(user.ID, newPwd); } catch (Exception ex) { return(Error(viewmodel, ex)); } return(Ok(viewmodel, "Dein Passwort wurde gesetzt.")); }