public async Task <Answer> UpdateDetails(DetailsUpdateViewModel viewModel) { var user = await _facade.GetUserByUserIdAsync(Actor.Me.Id); user.YearOfBirth = viewModel.YearOfBirth; user.FullName = viewModel.FullName; user.IsAllowingPromotions = viewModel.IsAllowingPromotions; bool emailReplace = user.Email.ToLower() != viewModel.Email.ToLower(); user.Email = viewModel.Email; var result = await _facade.UpdateParticipant(user); var message = ""; if (result.IsSuccess && emailReplace) { await _facade.LogoutAsync(user.UserName); message = "Logout"; } return(result.IsSuccess ? new Answer(AnswerType.Success) { Message = message } : Answer.Error(result.Errors.FirstOrDefault())); }
public async Task <IActionResult> UpdateDetails(DetailsUpdateViewModel viewModel) { if (ModelState.IsValid) { var updateViewModel = new UpdateAccountViewModel { Password = new PasswordChangeViewModel(), Details = viewModel }; var result = await Gateway.UpdateDetails(viewModel); if (result.AnswerType == AnswerType.Success) { SetUserSuccess("עדכון פרטים", "הפרטים עודכנו בהצלחה"); if (result.Message == "Logout") { return(RedirectToAction("LoginOrRegister", "Account")); } else { return(View("UpdateAccount", updateViewModel)); } } else { var invalidProperty = ModelState.First(x => x.Value.ValidationState == ModelValidationState.Invalid); SetUserError("תקלה בעדכון פרטים", invalidProperty.Value.Errors.FirstOrDefault()?.ErrorMessage ?? "אנא נסו שוב"); return(View("UpdateAccount", updateViewModel)); } } else { var updateViewModel = new UpdateAccountViewModel { Password = new PasswordChangeViewModel(), Details = viewModel }; var invalidProperty = ModelState.First(x => x.Value.ValidationState == ModelValidationState.Invalid); SetUserError("תקלה במידע שהתקבל", invalidProperty.Value.Errors.FirstOrDefault()?.ErrorMessage ?? "אנא נסו שוב"); return(View("UpdateAccount", updateViewModel)); } }