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; }
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); } }
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; }
public abstract void AddFilterValue( BaseFilterParameter <TTable> baseFilterParameter, Enum filtertype, FilterItem filterItem, QueryParameters qParams);
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; }
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; }