Ejemplo n.º 1
0
        public ActionResult EditAccount(SantaUserPostModel model)
        {
            if (_userRepository.WasAssigned())
            {
                return(View("Message", model: Resources.Global.Message_CannotEditAccountAfterAssignment));
            }
            var userId = GetUserId();

            if (!userId.HasValue)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // set the correct fb uri:
            model.FacebookProfileUrl = FacebookUriHelper.GetUniformFacebookUri(model.FacebookProfileUrl);

            if (model.FacebookProfileUrl == null)
            {
                ModelState.AddModelError(nameof(SantaUserPostModel.FacebookProfileUrl),
                                         Resources.Global.FacebookURL_Invalid);
                return(View(model));
            }

            var updateModel = _mapper.Map <SantaUser>(model);

            updateModel.Id = userId.Value;

            var updateResult = _userRepository.UpdateUser(updateModel);

            if (!updateResult.Success)
            {
                if (updateResult.EmailUnavailable)
                {
                    ModelState.AddModelError(nameof(SantaUserPostModel.Email), Resources.Global.EmailTaken);
                    return(View(model));
                }

                return(View("Message", model: Resources.Global.Message_Error));
            }

            if (updateResult.EmailChanged)
            {
                _emailService.SendConfirmationEmail(updateModel);

                // sign out, email is used to find people in the user db!
                HttpContext.GetOwinContext().Authentication
                .SignOut(DefaultAuthenticationTypes.ApplicationCookie);

                return(View("Message", model: string.Format(Resources.Global.User_Edit_EmailSent, updateModel.Email)));
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 2
0
        public ActionResult EditAccount()
        {
            if (_userRepository.WasAssigned())
            {
                return(View("Message", model: Resources.Global.Message_CannotEditAccountAfterAssignment));
            }

            var userId = GetUserId();

            if (!userId.HasValue)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var santaUser            = _userRepository.GetUser(userId.Value);
            SantaUserPostModel model = _mapper.Map <SantaUserViewModel>(santaUser);

            return(View(model));
        }