コード例 #1
0
 public override void AddFilterValue(
     BaseFilterParameter <TTable> baseFilterParameter,
     Enum filtertype,
     FilterItem filterItem,
     QueryParameters qParams)
 {
     this.filterItems[filterItem.FilterName].Add(filterItem);
 }
        protected override void FilterInitialize()
        {
            if (_filterInitialized)
            {
                return;
            }
            _filterInitialized = true;

            _filters = (IList <Filter>)HttpContext.Current.Items["DIC_MySecondDictionary.FiltersCache"];
            if (Page == null && _filters != null)
            {
                _filterHandlers = _filters.
                                  Union(_filters.SelectMany(r => r.AllChildren)).
                                  Where(p => p.FilterHandler != null).
                                  ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
                return;
            }

            BrowseFilterParameters parameters;
            IList <Filter>         filters = new List <Filter>();
            var stack = new Stack <IList <Filter> >();

            _filters = filters;
            Filter current;
            BaseFilterParameter currentBF = null;



            //колонка 'Name'
            current = currentBF = new BaseFilterParameterString <DIC_MySecondDictionary>(r => r.Name)
            {
                FilterName      = "Name",
                Header          = DIC_MySecondDictionaryResources.Name__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Text,
                MaxLength       = 255,
                Width           = "98%",
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            parameters = new BrowseFilterParameters();
            GetBrowseFilterParameters_refFirstDictionary(parameters);
            //колонка 'First Dictionary Value'
            current = currentBF = new BaseFilterParameter <DIC_MySecondDictionary, Int64>(r => r.refFirstDictionary,
                                                                                          r => r.DIC_MyFirstDictionary_refFirstDictionary.Name,
                                                                                          r => r.DIC_MyFirstDictionary_refFirstDictionary.Name)
            {
                FilterName             = "refFirstDictionary",
                Header                 = DIC_MySecondDictionaryResources.refFirstDictionary__Header,
                IsJournalFilter        = true,
                Mandatory              = true,
                Type                   = FilterHtmlGenerator.FilterType.Reference,
                ProjectName            = "SampleDictionaries",
                TableName              = "DIC_MyFirstDictionary",
                Lookup                 = true,
                MinimumPrefixLength    = 1,
                Width                  = "98%",
                SelectMode             = "none",
                IsMultipleSelect       = true,
                BrowseFilterParameters = parameters,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Decimal Value'
            current = currentBF = new BaseFilterParameter <DIC_MySecondDictionary, Decimal>(r => r.DecimalValue)
            {
                FilterName       = "DecimalValue",
                Header           = DIC_MySecondDictionaryResources.DecimalValue__Header,
                IsJournalFilter  = true,
                Mandatory        = false,
                Type             = FilterHtmlGenerator.FilterType.Numeric,
                DecimalPrecision = 2,
                MaxLength        = 11,
                Columns          = 11,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Boolean Value'
            current = currentBF = new BaseFilterParameter <DIC_MySecondDictionary, Boolean>(r => r.BoolValue)
            {
                FilterName       = "BoolValue",
                Header           = DIC_MySecondDictionaryResources.BoolValue__Header,
                IsJournalFilter  = true,
                Mandatory        = true,
                Type             = FilterHtmlGenerator.FilterType.Boolean,
                TrueBooleanText  = DIC_MySecondDictionaryResources.BoolValue__TrueText,
                FalseBooleanText = DIC_MySecondDictionaryResources.BoolValue__FalseText,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            if (Url.IsMultipleSelect)
            {
                current = new Filter
                {
                    FilterName       = MultipleSelectedValues,
                    Header           = TableResources.MultipleSelectedFilterHeader,
                    Type             = FilterHtmlGenerator.FilterType.Boolean,
                    TrueBooleanText  = TableResources.MultipleSelectedFilterSelected,
                    FalseBooleanText = TableResources.MultipleSelectedFilterNotSelected,
                    Mandatory        = true,
                    FilterHandler    =
                        delegate(IQueryable enumerable, Enum type, string value1, string value2)
                    {
                        throw new Exception("Is not actual delegate");
                    },
                };
                filters.Add(current);
            }

            AddSearchFilter(filters);
            SetDefaultFilterType(filters);
            FilterInitialize(filters);
            if (CustomFilter != null && !_customFiltersInitialized)
            {
                _customFiltersInitialized = true;
                InitializeCustomFilters(filters);
            }

            _filterHandlers = filters.
                              Union(filters.SelectMany(r => r.AllChildren)).
                              Where(p => p.FilterHandler != null).
                              ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
            HttpContext.Current.Items["DIC_MySecondDictionary.FiltersCache"] = filters;
        }
コード例 #3
0
        private void AddExpressions(QueryParameters qParams, List <FilterItem> filterItems, BaseFilterParameter <TTable> filter, List <Expression> expressions)
        {
            expressions.AddRange(
                filterItems.Where(f => f.FilterType == "NotEquals")
                .Select(f => filter.CreateFilterExpression(f, qParams))
                .Where(f => f != null));

            var items = filterItems
                        .Where(f => f.FilterType != "NotEquals" && f.FilterType != "Non")
                        .Select(f => filter.CreateFilterExpression(f, qParams))
                        .Where(f => f != null)
                        .ToList();

            if (items.Count == 1)
            {
                expressions.Add(items[0]);
                AppliedFilters.Add(filter);
            }
            else if (items.Count > 1)
            {
                var param         = Expression.Parameter(typeof(TTable), "orRow");
                var orExpressions =
                    items.Select(e => (Expression)Expression.Invoke(e, param)).Aggregate(Expression.Or);
                expressions.Add(Expression.Lambda(orExpressions, param));
                AppliedFilters.Add(filter);
            }
        }
コード例 #4
0
        protected override void FilterInitialize()
        {
            if (_filterInitialized)
            {
                return;
            }
            _filterInitialized = true;

            _filters = (IList <Filter>)HttpContext.Current.Items["MyProductActions.FiltersCache"];
            if (Page == null && _filters != null)
            {
                _filterHandlers = _filters.
                                  Union(_filters.SelectMany(r => r.AllChildren)).
                                  Where(p => p.FilterHandler != null).
                                  ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
                return;
            }

            BrowseFilterParameters parameters;
            IList <Filter>         filters = new List <Filter>();
            var stack = new Stack <IList <Filter> >();

            _filters = filters;
            Filter current;
            BaseFilterParameter currentBF = null;



            parameters = new BrowseFilterParameters();
            GetBrowseFilterParameters_refProduct(parameters);
            //колонка 'Мой товар'
            current = currentBF = new BaseFilterParameter <MyProductAction, Int64>(r => r.refProduct,
                                                                                   r => r.MyProduct_refProduct.Name,
                                                                                   r => r.MyProduct_refProduct.Name)
            {
                FilterName             = "refProduct",
                Header                 = MyProductActionsResources.refProduct__Header,
                IsJournalFilter        = true,
                Mandatory              = true,
                Type                   = FilterHtmlGenerator.FilterType.Reference,
                ProjectName            = "SampleDictionaries",
                TableName              = "MyProducts",
                Lookup                 = true,
                MinimumPrefixLength    = 1,
                Width                  = "98%",
                SelectMode             = "none",
                IsMultipleSelect       = true,
                BrowseFilterParameters = parameters,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Дата/время действия'
            current = currentBF = new BaseFilterParameter <MyProductAction, DateTime>(r => r.DateTimeAction)
            {
                FilterName      = "DateTimeAction",
                Header          = MyProductActionsResources.DateTimeAction__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Numeric,
                IsDateTime      = true,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Изменение кол-ва'
            current = currentBF = new BaseFilterParameter <MyProductAction, Decimal>(r => r.AmountChange)
            {
                FilterName       = "AmountChange",
                Header           = MyProductActionsResources.AmountChange__Header,
                IsJournalFilter  = true,
                Mandatory        = true,
                Type             = FilterHtmlGenerator.FilterType.Numeric,
                DecimalPrecision = 2,
                MaxLength        = 8,
                Columns          = 8,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Примечание'
            current = currentBF = new BaseFilterParameterString <MyProductAction>(r => r.Note)
            {
                FilterName      = "Note",
                Header          = MyProductActionsResources.Note__Header,
                IsJournalFilter = true,
                Mandatory       = false,
                Type            = FilterHtmlGenerator.FilterType.Text,
                MaxLength       = 500,
                Width           = "98%",
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            if (Url.IsMultipleSelect)
            {
                current = new Filter
                {
                    FilterName       = MultipleSelectedValues,
                    Header           = TableResources.MultipleSelectedFilterHeader,
                    Type             = FilterHtmlGenerator.FilterType.Boolean,
                    TrueBooleanText  = TableResources.MultipleSelectedFilterSelected,
                    FalseBooleanText = TableResources.MultipleSelectedFilterNotSelected,
                    Mandatory        = true,
                    FilterHandler    =
                        delegate(IQueryable enumerable, Enum type, string value1, string value2)
                    {
                        throw new Exception("Is not actual delegate");
                    },
                };
                filters.Add(current);
            }

            AddSearchFilter(filters);
            SetDefaultFilterType(filters);
            FilterInitialize(filters);
            if (CustomFilter != null && !_customFiltersInitialized)
            {
                _customFiltersInitialized = true;
                InitializeCustomFilters(filters);
            }

            _filterHandlers = filters.
                              Union(filters.SelectMany(r => r.AllChildren)).
                              Where(p => p.FilterHandler != null).
                              ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
            HttpContext.Current.Items["MyProductActions.FiltersCache"] = filters;
        }
コード例 #5
0
 public abstract void AddFilterValue(
     BaseFilterParameter <TTable> baseFilterParameter,
     Enum filtertype,
     FilterItem filterItem,
     QueryParameters qParams);
コード例 #6
0
        protected override void FilterInitialize()
        {
            if (_filterInitialized)
            {
                return;
            }
            _filterInitialized = true;

            _filters = (IList <Filter>)HttpContext.Current.Items["DIC_MyFirstDictionary.FiltersCache"];
            if (Page == null && _filters != null)
            {
                _filterHandlers = _filters.
                                  Union(_filters.SelectMany(r => r.AllChildren)).
                                  Where(p => p.FilterHandler != null).
                                  ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
                return;
            }

            BrowseFilterParameters parameters;
            IList <Filter>         filters = new List <Filter>();
            var stack = new Stack <IList <Filter> >();

            _filters = filters;
            Filter current;
            BaseFilterParameter currentBF = null;



            //колонка 'System code'
            current = currentBF = new BaseFilterParameterString <DIC_MyFirstDictionary>(r => r.Code)
            {
                FilterName      = "Code",
                Header          = DIC_MyFirstDictionaryResources.Code__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Text,
                MaxLength       = 4,
                Columns         = 4,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Name'
            current = currentBF = new BaseFilterParameterString <DIC_MyFirstDictionary>(r => r.Name)
            {
                FilterName      = "Name",
                Header          = DIC_MyFirstDictionaryResources.Name__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Text,
                MaxLength       = 255,
                Width           = "98%",
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Date time Start'
            current = currentBF = new BaseFilterParameter <DIC_MyFirstDictionary, DateTime>(r => r.DateStart)
            {
                FilterName      = "DateStart",
                Header          = DIC_MyFirstDictionaryResources.DateStart__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Numeric,
                IsDateTime      = true,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Date time End'
            current = currentBF = new BaseFilterParameter <DIC_MyFirstDictionary, DateTime>(r => r.DateEnd)
            {
                FilterName      = "DateEnd",
                Header          = DIC_MyFirstDictionaryResources.DateEnd__Header,
                IsJournalFilter = true,
                Mandatory       = false,
                Type            = FilterHtmlGenerator.FilterType.Numeric,
                IsDateTime      = true,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            if (Url.IsMultipleSelect)
            {
                current = new Filter
                {
                    FilterName       = MultipleSelectedValues,
                    Header           = TableResources.MultipleSelectedFilterHeader,
                    Type             = FilterHtmlGenerator.FilterType.Boolean,
                    TrueBooleanText  = TableResources.MultipleSelectedFilterSelected,
                    FalseBooleanText = TableResources.MultipleSelectedFilterNotSelected,
                    Mandatory        = true,
                    FilterHandler    =
                        delegate(IQueryable enumerable, Enum type, string value1, string value2)
                    {
                        throw new Exception("Is not actual delegate");
                    },
                };
                filters.Add(current);
            }

            AddSearchFilter(filters);
            SetDefaultFilterType(filters);
            FilterInitialize(filters);
            if (CustomFilter != null && !_customFiltersInitialized)
            {
                _customFiltersInitialized = true;
                InitializeCustomFilters(filters);
            }

            _filterHandlers = filters.
                              Union(filters.SelectMany(r => r.AllChildren)).
                              Where(p => p.FilterHandler != null).
                              ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
            HttpContext.Current.Items["DIC_MyFirstDictionary.FiltersCache"] = filters;
        }
コード例 #7
0
        protected override void FilterInitialize()
        {
            if (_filterInitialized)
            {
                return;
            }
            _filterInitialized = true;

            _filters = (IList <Filter>)HttpContext.Current.Items["MyProducts.FiltersCache"];
            if (Page == null && _filters != null)
            {
                _filterHandlers = _filters.
                                  Union(_filters.SelectMany(r => r.AllChildren)).
                                  Where(p => p.FilterHandler != null).
                                  ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
                return;
            }

            BrowseFilterParameters parameters;
            IList <Filter>         filters = new List <Filter>();
            var stack = new Stack <IList <Filter> >();

            _filters = filters;
            Filter current;
            BaseFilterParameter currentBF = null;



            //колонка 'Наименование'
            current = currentBF = new BaseFilterParameterString <MyProduct>(r => r.Name)
            {
                FilterName      = "Name",
                Header          = MyProductsResources.Name__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Text,
                MaxLength       = 200,
                Width           = "98%",
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Дата создания'
            current = currentBF = new BaseFilterParameter <MyProduct, DateTime>(r => r.CreationDate)
            {
                FilterName      = "CreationDate",
                Header          = MyProductsResources.CreationDate__Header,
                IsJournalFilter = true,
                Mandatory       = true,
                Type            = FilterHtmlGenerator.FilterType.Numeric,
                IsDateTime      = true,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Цена'
            current = currentBF = new BaseFilterParameter <MyProduct, Decimal>(r => r.Price)
            {
                FilterName       = "Price",
                Header           = MyProductsResources.Price__Header,
                IsJournalFilter  = true,
                Mandatory        = true,
                Type             = FilterHtmlGenerator.FilterType.Numeric,
                DecimalPrecision = 2,
                MaxLength        = 8,
                Columns          = 8,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            //колонка 'Доступно'
            current = currentBF = new BaseFilterParameter <MyProduct, Decimal>(r => r.Amount)
            {
                FilterName       = "Amount",
                Header           = MyProductsResources.Amount__Header,
                IsJournalFilter  = true,
                Mandatory        = true,
                Type             = FilterHtmlGenerator.FilterType.Numeric,
                DecimalPrecision = 2,
                MaxLength        = 8,
                Columns          = 8,
            };
            currentBF.AddFilter(filters);
            //filters.Add(current);



            if (Url.IsMultipleSelect)
            {
                current = new Filter
                {
                    FilterName       = MultipleSelectedValues,
                    Header           = TableResources.MultipleSelectedFilterHeader,
                    Type             = FilterHtmlGenerator.FilterType.Boolean,
                    TrueBooleanText  = TableResources.MultipleSelectedFilterSelected,
                    FalseBooleanText = TableResources.MultipleSelectedFilterNotSelected,
                    Mandatory        = true,
                    FilterHandler    =
                        delegate(IQueryable enumerable, Enum type, string value1, string value2)
                    {
                        throw new Exception("Is not actual delegate");
                    },
                };
                filters.Add(current);
            }

            AddSearchFilter(filters);
            SetDefaultFilterType(filters);
            FilterInitialize(filters);
            if (CustomFilter != null && !_customFiltersInitialized)
            {
                _customFiltersInitialized = true;
                InitializeCustomFilters(filters);
            }

            _filterHandlers = filters.
                              Union(filters.SelectMany(r => r.AllChildren)).
                              Where(p => p.FilterHandler != null).
                              ToDictionary(p => LinqFilterGenerator.GetFilterName(p.FilterName));
            HttpContext.Current.Items["MyProducts.FiltersCache"] = filters;
        }