Esempio n. 1
0
        protected virtual void OnButtonOkClick(EventArgs e)
        {
            CompositeFilterDescriptor filterDescriptor1 = new CompositeFilterDescriptor();

            filterDescriptor1.PropertyName    = this.DataColumn.Name;
            filterDescriptor1.LogicalOperator = FilterLogicalOperator.Or;
            if (this.calendarItem.IsChecked)
            {
                if (this.calendarItem.CalendarElement.Calendar.SelectedDates.Count == 0)
                {
                    DateFilterDescriptor filterDescriptor2 = new DateFilterDescriptor(this.DataColumn.Name, FilterOperator.IsEqualTo, new DateTime?(this.calendarItem.CalendarElement.Calendar.FocusedDate), false);
                    filterDescriptor1.FilterDescriptors.Add((FilterDescriptor)filterDescriptor2);
                }
                else
                {
                    foreach (DateTime selectedDate in this.calendarItem.CalendarElement.Calendar.SelectedDates)
                    {
                        DateFilterDescriptor filterDescriptor2 = new DateFilterDescriptor(this.DataColumn.Name, FilterOperator.IsEqualTo, new DateTime?(selectedDate), false);
                        filterDescriptor1.FilterDescriptors.Add((FilterDescriptor)filterDescriptor2);
                    }
                }
            }
            foreach (RadItem radItem in (RadItemCollection)this.Items)
            {
                FilterMenuCustomDateItem menuCustomDateItem = radItem as FilterMenuCustomDateItem;
                if (menuCustomDateItem != null && menuCustomDateItem.IsChecked && !this.SearchForAppliedFilterDescriptors((FilterDescriptor)filterDescriptor1, menuCustomDateItem.FilterDescriptor))
                {
                    filterDescriptor1.FilterDescriptors.Add(menuCustomDateItem.FilterDescriptor);
                }
            }
            this.FilterDescriptor = (FilterDescriptor)filterDescriptor1;
            this.OnFilterConfirmed();
        }
Esempio n. 2
0
        protected virtual string GetExpression()
        {
            List <string> stringList = new List <string>();

            for (int index = 0; index < this.Count; ++index)
            {
                FilterDescriptor          filterDescriptor1 = this[index];
                CompositeFilterDescriptor filterDescriptor2 = filterDescriptor1 as CompositeFilterDescriptor;
                string str;
                if (filterDescriptor2 != null)
                {
                    foreach (FilterDescriptor filterDescriptor3 in (Collection <FilterDescriptor>)filterDescriptor2.FilterDescriptors)
                    {
                        if (!string.IsNullOrEmpty(filterDescriptor3.PropertyName))
                        {
                            this.owner.Columns.GetColumnByFieldName(filterDescriptor3.PropertyName);
                        }
                    }
                    str = CompositeFilterDescriptor.GetCompositeExpression(filterDescriptor2, new Function <FilterDescriptor, object>(this.FormatDescriptorValue));
                }
                else if (!string.IsNullOrEmpty(filterDescriptor1.PropertyName) && this.owner.Columns.GetColumnByFieldName(filterDescriptor1.PropertyName) != null)
                {
                    DateFilterDescriptor dateTimeFilterDescriptor = filterDescriptor1 as DateFilterDescriptor;
                    str = dateTimeFilterDescriptor == null?FilterDescriptor.GetExpression(filterDescriptor1, new Function <FilterDescriptor, object>(this.FormatDescriptorValue)) : DateFilterDescriptor.GetExpression(dateTimeFilterDescriptor);
                }
                else
                {
                    continue;
                }
                if (!string.IsNullOrEmpty(str))
                {
                    stringList.Add(str);
                }
            }
            return(string.Join(this.LogicalOperator == FilterLogicalOperator.And ? " AND " : " OR ", stringList.ToArray()));
        }