public async Task <IActionResult> ChangePassword(PasswordChangeViewModel viewmodel) { if (ModelState.IsValid) { var result = await Gateway.ChangePassword(viewmodel); var user = Gateway.GetParticipant(Actor.Me.Id); var updateViewModel = new UpdateAccountViewModel(); updateViewModel.Password = new PasswordChangeViewModel(); updateViewModel.Details = new DetailsUpdateViewModel { YearOfBirth = user.YearOfBirth, FullName = user.FullName, Email = user.Email, IsAllowingPromotions = user.IsAllowingPromotions, PhoneNumber = user.PhoneNumber }; if (result.AnswerType == AnswerType.Success) { SetUserSuccess("שינוי סיסמה", "הסיסמה שונתה בהצלחה"); return(View("UpdateAccount", updateViewModel)); } else { SetUserSuccess("שינוי סיסמה", "תקלה - " + result.Message); return(View("UpdateAccount", updateViewModel)); } } else { var user = Gateway.GetParticipant(Actor.Me.Id); var updateViewModel = new UpdateAccountViewModel(); updateViewModel.Password = new PasswordChangeViewModel(); updateViewModel.Details = new DetailsUpdateViewModel { YearOfBirth = user.YearOfBirth, FullName = user.FullName, Email = user.Email, IsAllowingPromotions = user.IsAllowingPromotions, PhoneNumber = user.PhoneNumber }; var invalidProperty = ModelState.First(x => x.Value.ValidationState == ModelValidationState.Invalid); SetUserError("תקלה במידע שהתקבל", invalidProperty.Value.Errors.FirstOrDefault()?.ErrorMessage ?? "אנא נסו שוב"); return(View("UpdateAccount", updateViewModel)); } }