protected virtual void FillQueryParametersListFromMappings()
    {
        foreach (KeyValuePair <string, RouteParamsToQueryParametersMappings> items in RouteParamsToQueryParametersMappingsList)
        {
            foreach (RouteParamsToQueryParametersMapping item in items.Value)
            {
                if (item.ParamType == ParamType.RouteParam)
                {
                    if (RouteParams[item.ParamName].isSet)
                    {
                        QueryParameters __QueryParameters = QueryParametersList[items.Value.QueryName];

                        __QueryParameters.Where     = "";
                        __QueryParameters.SqlParams = new List <System.Data.SqlClient.SqlParameter>();
                        __QueryParameters.Where     = item.ColumnName + " " + item.Operation + " " +
                                                      string.Format(item.Format,
                                                                    "@" + item.ColumnName);
                        SqlParameter _sqlParam = new SqlParameter();
                        _sqlParam.ParameterName = "@" + item.ColumnName;
                        _sqlParam.Value         = RouteParams[item.ParamName].value;
                        __QueryParameters.SqlParams.Add(_sqlParam);

                        QueryParametersList.Add(__QueryParameters);
                    }
                }
                else if (item.ParamType == ParamType.MiscParam)
                {
                    QueryParameters __QueryParameters = QueryParametersList[items.Value.QueryName];
                    __QueryParameters.QueryName = items.Value.QueryName;
                    __QueryParameters.Where     = "";
                    __QueryParameters.SqlParams = new List <System.Data.SqlClient.SqlParameter>();
                    __QueryParameters.Where     = item.ColumnName + " " + item.Operation + " " +
                                                  string.Format(item.Format,
                                                                "@" + item.ColumnName);
                    SqlParameter _sqlParam = new SqlParameter();
                    _sqlParam.ParameterName = "@" + item.ColumnName;
                    _sqlParam.Value         = MiscParams[item.ParamName].value;
                    __QueryParameters.SqlParams.Add(_sqlParam);

                    QueryParametersList.Add(__QueryParameters);
                }
            }
        }
    }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        MiscParams          = new MiscParams();
        RouteParams         = new RouteParams();
        QueryParametersList = new QueryParametersList();
        RouteParamsToQueryParametersMappingsList = new RouteParamsToQueryParametersMappingsList();

        FillMiscParams();

        SetRouteParams();

        FillRouteParamsFromPath();

        SetQueryParametersList();

        SetRouteParamsToQueryParametersMappings();

        FillQueryParametersListFromMappings();
    }