コード例 #1
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.IsSuccessful = false;
            if (!filterContext.Controller.ViewData.ModelState.IsValid)
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", "Invalid user information");
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }

            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty())
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", "Invalid user information");
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }
            if (!modelList.Any() || modelList.Count != 1)
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", "Invalid user information");
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }

            var model = modelList[0].Value as ResetPasswordContract;

            if (model == null)
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", "Invalid user information");
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }
            var unlock = PortalUser.UnlockUser(model.UserName);

            if (unlock == null)
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", "Process Failed! Unable to unlock user");
                filterContext.Controller.ViewBag.Error = "Process Failed! Unable to unlock user";
                return;
            }
            if (!unlock.Status.IsSuccessful)
            {
                filterContext.Controller.ViewData.ModelState.AddModelError("", string.IsNullOrEmpty(unlock.Status.Message.FriendlyMessage) ? "Process Failed! Unable to update user's account" : unlock.Status.Message.FriendlyMessage);
                filterContext.Controller.ViewBag.Error = string.IsNullOrEmpty(unlock.Status.Message.FriendlyMessage) ? "Process Failed! Unable to update user's account" : unlock.Status.Message.FriendlyMessage;
                return;
            }

            filterContext.Controller.ViewBag.IsSuccessful = true;;
            base.OnActionExecuting(filterContext);
        }