Atomia.Web.Plugin.PublicOrder.Filters.UrlManagerAttribute.OnActionExecuting C# (CSharp) Метод

OnActionExecuting() публичный Метод

Called before the action method executes.
public OnActionExecuting ( System.Web.Mvc.ActionExecutingContext filterContext ) : void
filterContext System.Web.Mvc.ActionExecutingContext The filter context.
Результат void
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            Dictionary<string, bool> queryStringNames = new Dictionary<string, bool>();

            PublicOrderConfigurationSection opcs = LocalConfigurationHelper.GetLocalConfigurationSection();

            foreach (QueryString queryString in opcs.QueryStringList)
            {
                string qsValue = filterContext.HttpContext.Request.QueryString[queryString.Name];
                if (String.IsNullOrEmpty(qsValue))
                {
                    if (filterContext.HttpContext.Session["qs_" + queryString.Name] != null && filterContext.HttpContext.Session["qs_" + queryString.Name].ToString() != String.Empty)
                    {
                        qsValue = filterContext.HttpContext.Session["qs_" + queryString.Name].ToString();
                    }
                }

                if (!String.IsNullOrEmpty(qsValue))
                {
                    if (queryString.PassToView)
                    {
                        filterContext.Controller.ViewData["qs_" + queryString.Name] = qsValue;
                    }

                    // If action demands that after its completion all session variables for qs`s be removed (eg. thankyou page)
                    if (this.ClearSession)
                    {
                        filterContext.HttpContext.Session["qs_" + queryString.Name] = null;
                    }
                    else
                    {
                        filterContext.HttpContext.Session["qs_" + queryString.Name] = qsValue;

                        // Create list for session so other plugins can use querystrings if needed
                        queryStringNames.Add(queryString.Name, queryString.PassToView);
                    }
                }
            }

            if (queryStringNames.Count > 0)
            {
                filterContext.HttpContext.Session["order_QueryStringsDictionary"] = queryStringNames;
            }
            else
            {
                filterContext.HttpContext.Session["order_QueryStringsDictionary"] = null;
            }
        }
UrlManagerAttribute