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(); }
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())); }