示例#1
0
        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));
            }
        }