예제 #1
0
        public ActionResult Edit(User user, string action = null)
        {
            if (action == "cancel")
            {
                //Reset user profile with current user info
                user.Country     = CurrentUser.Country;
                user.DisplayName = CurrentUser.DisplayName;
            }

            user.UserId        = CurrentUserId;
            user.HasRegistered = true;

            _updateUser.Execute(user);

            var ticket = _formsAuthentication.GetAuthenticationTicket(HttpContext);

            if (ticket != null)
            {
                _formsAuthentication.SetAuthCookie(HttpContext,
                                                   UserAuthenticationTicketBuilder.CreateAuthenticationTicket(
                                                       user, ticket.IssueDate, ticket.IsPersistent));
            }

            if (ModelState.IsValid || action == "cancel")
            {
                if (Request.IsAjaxRequest())
                {
                    return(new HttpStatusCodeResult((int)HttpStatusCode.OK, Messages.ProfileController_ProfileUpdated));
                }

                if (action != "cancel")
                {
                    this.SetConfirmationMessage(Messages.ProfileController_ProfileUpdated);
                }

                return(RedirectToAction("Index", "Dashboard"));
            }

            if (Request.IsAjaxRequest())
            {
                return(new HttpStatusCodeResult((int)HttpStatusCode.BadRequest, Messages.ProfileController_InvalidData));
            }

            return(SetupProfileForm(user));
        }