Example #1
0
        [NoAntiForgeryCheck] //???
        public BsJsonResult SetContent(EditableProfileVm model, ProfilePanelComponentsEnum componentId)
        {
            var        html       = string.Empty;
            var        status     = BsResponseStatus.Success;
            var        msg        = string.Empty;
            UserDataVm userDataVm = null;

            switch (componentId)
            {
            case ProfilePanelComponentsEnum.UserData:
                ModelState.ClearModelState(model.GetPropertyName(m => m.UserData) + ".");
                break;
            }

            try
            {
                if (ModelState.IsValid)
                {
                    ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());

                    switch (componentId)
                    {
                    case ProfilePanelComponentsEnum.UserData:
                        user = Mapper.Map(model.UserData, user);
                        UserManager.Update(user);

                        userDataVm = Mapper.Map <ApplicationUser, UserDataVm>(user);

                        html = this.BsRenderPartialView("Readonly/_UserData", userDataVm);
                        break;
                    }
                }
                else
                {
                    //JSON serialize ModelState errors
                    return(new BsJsonResult(
                               new Dictionary <string, object> {
                        { "Errors", ModelState.GetErrors() }
                    },
                               BsResponseStatus.ValidationError));
                }
            }

            catch (Exception ex)
            {
                msg    = "<strong>" + Resources.Resources.Error_Server + "!</strong> " + ex.Message;
                status = BsResponseStatus.ServerError;
            }

            return(new BsJsonResult(new
            {
                Html = html,
                Profile = userDataVm
            }, status, msg));
        }
Example #2
0
        public BsJsonResult GetEditableContent(ProfilePanelComponentsEnum componentId)
        {
            var               html = string.Empty;
            ApplicationUser   user = UserManager.FindById(User.Identity.GetUserId());
            EditableProfileVm vm   = Mapper.Map <ApplicationUser, EditableProfileVm>(user);

            switch (componentId)
            {
            case ProfilePanelComponentsEnum.UserData:
                html = this.BsRenderPartialView("Editable/_UserData", vm.UserData, vm.GetPropertyName(x => x.UserData));
                break;
            }

            return(new BsJsonResult(new
            {
                Html = html
            }));
        }