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()));
        }
Esempio n. 2
0
        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));
            }
        }