protected override Expression GetExpression()
        {
            var exp = new CombinationExpression();

            if (filterView.IsGroupedData)
            {
                var selectedItems = filterView.GetSelectedValues();
                if (selectedItems == null || selectedItems.Count() == 0)
                {
                    var selectedRange = filterView.GetSliderRange();
                    selectedItems = new List <object>();
                    for (int idx = (int)Math.Ceiling((double)selectedRange.Item1); idx <= (int)Math.Floor((double)selectedRange.Item2); idx++)
                    {
                        (selectedItems as IList).Add(items.ElementAt(idx));
                    }
                }
                SetGroupExpression(exp, selectedItems);
            }
            else
            {
                var selectedItems = filterView.GetSelectedValues();
                if (selectedItems == null || selectedItems.Count() == 0)
                {
                    SetRangeExpression(exp, filterView.GetSliderRange());
                }
                else
                {
                    SetXYExpression(exp, selectedItems);
                }
            }
            return(exp);
        }
        private void SetXYExpression(CombinationExpression exp, IEnumerable <object> selectedValues)
        {
            exp.FilterCombination = FilterCombination.Or;

            foreach (var item in selectedValues)
            {
                var comboExp = new CombinationExpression()
                {
                    FilterCombination = FilterCombination.And
                };
                comboExp.Expressions.Add(new OperationExpression
                {
                    PropertyName    = propertyX,
                    Value           = GetPropertyValue(propertyX, item),
                    FilterOperation = FilterOperation.Equal,
                });
                foreach (var property in propertyY.Split(','))
                {
                    comboExp.Expressions.Add(new OperationExpression
                    {
                        PropertyName    = property.Trim(),
                        Value           = GetPropertyValue(property.Trim(), item),
                        FilterOperation = FilterOperation.Equal,
                    });
                }
                exp.Expressions.Add(comboExp);
            }
        }
示例#3
0
        private void InitForms()
        {
            // Apply default filter - show only invoices with discount
            _filterForm = new FilterEditor(c1FlexGrid1);
            var expression = new CombinationExpression();

            expression.Expressions.Add(new OperationExpression()
            {
                PropertyName    = "Discount",
                FilterOperation = FilterOperation.GreaterThan,
                Value           = 0
            });
            _filterForm.SetExpression(expression);

            // Apply default rule - bold text for major invoice records
            _rulesForm = new ConditionalFormattingForm(c1FlexGrid1);
            var rule = new C1.Win.RulesManager.Rule()
            {
                Name       = "Major Invoices",
                Expression = "=[ExtendedPrice] > 1000",
                Style      = new ItemStyle()
                {
                    FontStyle = FontStyle.Bold
                }
            };

            _rulesForm.Rules.Add(rule);
        }
        private void SetGroupExpression(CombinationExpression exp, IEnumerable <object> selectedGroups)
        {
            exp.FilterCombination = FilterCombination.Or;

            foreach (GroupItem grpItem in selectedGroups)
            {
                exp.Expressions.Add(CreateRangeExpression(grpItem.Min, grpItem.Max));
            }
        }
        private void SetRangeExpression(CombinationExpression exp, Tuple <object, object> sliderRange)
        {
            exp.FilterCombination = FilterCombination.And;

            //RangeSlider is not suggested to use for Categorical Data
            if (sliderRange != null && !isCategoricalData())
            {
                exp.Expressions.Add(CreateRangeExpression(sliderRange.Item1, sliderRange.Item2));
            }
        }
示例#6
0
        private static CombinationExpression GetPredefinedFilter()
        {
            var filterExpression = new CombinationExpression();

            var filterExpressions = filterExpression.Expressions;

            var hpGreaterThen200Expression = new OperationExpression()
            {
                PropertyName = "HP",
                FilterOperation = FilterOperation.GreaterThanOrEqual,
                Value = 200
            };
            filterExpressions.Add(hpGreaterThen200Expression);

            var automaticTransmissionExpression = new OperationExpression()
            {
                PropertyName = "AutomaticTransmission",
                FilterOperation = FilterOperation.Equal,
                Value = true
            };
            filterExpressions.Add(automaticTransmissionExpression);

            var sportsCategoryExpression = new OperationExpression()
            {
                PropertyName = "StartSaleDate",
                FilterOperation = FilterOperation.GreaterThanOrEqual,
                Value = new DateTime(2011, 1, 1)
            };
            filterExpressions.Add(sportsCategoryExpression);

            var brandOrExpression = new CombinationExpression();
            brandOrExpression.FilterCombination = FilterCombination.Or;

            var brandExpressions = brandOrExpression.Expressions;

            var brandEqualMercedesBenzExpression = new OperationExpression()
            {
                PropertyName = "Brand",
                FilterOperation = FilterOperation.EqualText,
                Value = "Mercedes-Benz"
            };
            brandExpressions.Add(brandEqualMercedesBenzExpression);

            var brandEqualAudiExpression = new OperationExpression()
            {
                PropertyName = "Brand",
                FilterOperation = FilterOperation.EqualText,
                Value = "Audi"
            };
            brandExpressions.Add(brandEqualAudiExpression);

            filterExpressions.Add(brandOrExpression);

            return filterExpression;
        }
示例#7
0
        async void InitExpressionAndApply()
        {
            CombinationExpression filterExpression = null;

            if (File.Exists(pathToXmlFile))
            {
                filterExpression        = LoadFilterFromFile(pathToXmlFile);
                filterEditor.Expression = filterExpression;
            }

            await filterEditor.ApplyFilterAsync();
        }
示例#8
0
        protected override Expression GetExpression()
        {
            var ce = new CombinationExpression()
            {
                FilterCombination = FilterCombination.Or
            };

            foreach (var item in MultiSelect.SelectedItems)
            {
                ce.Expressions.Add(new OperationExpression()
                {
                    FilterOperation = FilterOperation.Equal, Value = item.Value, PropertyName = PropertyName
                });
            }
            return(ce);
        }
示例#9
0
        protected override Expression GetExpression()
        {
            var tags = _modelFilterPresenter.GetSelectedTagList();
            var expr = new CombinationExpression()
            {
                FilterCombination = FilterCombination.Or
            };

            foreach (var tag in tags)
            {
                expr.Expressions.Add(new OperationExpression()
                {
                    Value = tag, FilterOperation = FilterOperation.Equal, PropertyName = PropertyName
                });
            }
            return(expr);
        }
示例#10
0
        protected override Expression GetExpression()
        {
            var colors = _colorFilterView.GetSelectedColors();
            var expr   = new CombinationExpression()
            {
                FilterCombination = FilterCombination.Or
            };

            foreach (var color in colors)
            {
                expr.Expressions.Add(new OperationExpression()
                {
                    Value = color, FilterOperation = FilterOperation.Equal, PropertyName = PropertyName
                });
            }
            return(expr);
        }
示例#11
0
        private void ApplyFilter()
        {
            pathToXmlFile = Directory.GetCurrentDirectory() + "\\" + xmlFileName;
            CombinationExpression filterExpression = null;

            if (!File.Exists(pathToXmlFile))
            {
                filterExpression = GetPredefinedFilter();
            }
            else
            {
                filterExpression = LoadFilterFromFile(pathToXmlFile);
            }

            c1FilterEditor1.SetExpression(filterExpression);
            c1FilterEditor1.ApplyFilter();
        }
        protected override C1.WPF.DataFilter.Expression GetExpression()
        {
            var stores = _mapFilterPresenter.GetSelectedStores();
            var expr   = new CombinationExpression()
            {
                FilterCombination = FilterCombination.Or
            };

            foreach (var store in stores)
            {
                expr.Expressions.Add(new OperationExpression()
                {
                    Value = store.ID, FilterOperation = FilterOperation.Equal, PropertyName = PropertyName
                });
            }
            return(expr);
        }
        private CombinationExpression CreateRangeExpression(object min, object max)
        {
            var subExpression = new CombinationExpression()
            {
                FilterCombination = FilterCombination.And
            };

            subExpression.Expressions.Add(new OperationExpression
            {
                PropertyName    = PropertyName != string.Empty ? PropertyName : propertyX,
                Value           = min,
                FilterOperation = min.GetType() == typeof(string) ? FilterOperation.Equal : FilterOperation.GreaterThanOrEqual,
            });
            subExpression.Expressions.Add(new OperationExpression
            {
                PropertyName    = PropertyName != string.Empty ? PropertyName : propertyX,
                Value           = max,
                FilterOperation = max.GetType() == typeof(string) ? FilterOperation.Equal : FilterOperation.LessThanOrEqual,
            });
            return(subExpression);
        }
        public Expression GetExpression(string propertyName)
        {
            if (double.IsNegativeInfinity(MinPrice))
            {
                return new OperationExpression()
                       {
                           FilterOperation = FilterOperation.LessThan, Value = MaxPrice, PropertyName = propertyName
                       }
            }
            ;
            if (double.IsPositiveInfinity(MaxPrice))
            {
                return new OperationExpression()
                       {
                           FilterOperation = FilterOperation.GreaterThan, Value = MinPrice, PropertyName = propertyName
                       }
            }
            ;
            else
            {
                var exp = new CombinationExpression()
                {
                    FilterCombination = FilterCombination.And
                };

                exp.Expressions.Add(new OperationExpression()
                {
                    FilterOperation = FilterOperation.GreaterThanOrEqual, Value = MinPrice, PropertyName = propertyName
                });
                exp.Expressions.Add(new OperationExpression()
                {
                    FilterOperation = FilterOperation.LessThanOrEqual, Value = MaxPrice, PropertyName = propertyName
                });
                return(exp);
            }
        }