private void PopulateFilter(ItemCollection items, CamlFilter filter) { Label label = new Label(); label.Tag = filter; label.Content = filter.FieldName + " " + filter.FilterType.GetDescription() + " " + filter.FilterValue; label.MouseDoubleClick += Label_MouseDoubleClick; items.Add(label); }
private void Label_MouseDoubleClick(object sender, MouseButtonEventArgs e) { FilterEditControl filterControl = new FilterEditControl(); Label label = (Label)e.Source; CamlFilter filter = (CamlFilter)label.Tag; filterControl.Initialize(SourceFields, filter); if (filterControl.ShowDialog(null, "Filter") == true) { label.Content = filter.ToCaml(); } }
private void SearchButton_Click(object sender, RoutedEventArgs e) { SiteSetting siteSetting = this.SiteSettings[SelectedDocumentTemplateMapping.Folder.SiteSettingID]; IServiceManager serviceManager = ServiceManagerFactory.GetServiceManager(siteSetting.SiteSettingType); Folder targetFolder = serviceManager.GetFolder(siteSetting, SelectedDocumentTemplateMapping.Folder); int itemCount; string listItemCollectionPositionNext = String.Empty; Folder selectedFolder = targetFolder; IView selectedView = null; string sortedFieldName = string.Empty; bool isAsc = true; int currentPageIndex = 0; string currentListItemCollectionPositionNext = "0"; CamlFilters customFilters = new CamlFilters(); customFilters.IsOr = false; Dictionary <string, SearchFilters> searchFilters; if (radioButtonWord.IsChecked == true) { searchFilters = WordSearchFilters; } else if (radioButtonOutlook.IsChecked == true) { searchFilters = OutlookSearchFilters; } else { searchFilters = ExcelSearchFilters; } foreach (string key in searchFilters.Keys) { CamlFilter customFilter = new CamlFilter(searchFilters[key][0]); customFilters.Add(customFilter); } List <IItem> items = ApplicationContext.Current.GetListItems(siteSetting, selectedFolder, selectedView, sortedFieldName, isAsc, currentPageIndex, currentListItemCollectionPositionNext, customFilters, true, out listItemCollectionPositionNext, out itemCount); ApplicationContext.Current.BindSearchResultsToListViewControl(siteSetting, items, SearchResultDataGridView); }
public void Initialize(FieldCollection fields, CamlFilter filter) { this.Fields = fields; this.Filter = filter; FieldComboBox.ItemsSource = fields; ComparisonTypes.Add(new ListViewItem() { Content = "is equal to", Tag = CamlFilterTypes.Equals }); ComparisonTypes.Add(new ListViewItem() { Content = "is not equal to", Tag = CamlFilterTypes.NotEqual }); ComparisonTypes.Add(new ListViewItem() { Content = "is greater than", Tag = CamlFilterTypes.Greater }); ComparisonTypes.Add(new ListViewItem() { Content = "is less than", Tag = CamlFilterTypes.Lesser }); ComparisonTypes.Add(new ListViewItem() { Content = "is greater than or equal to", Tag = CamlFilterTypes.EqualsGreater }); ComparisonTypes.Add(new ListViewItem() { Content = "is less than or equal to", Tag = CamlFilterTypes.EqualsLesser }); ComparisonTypes.Add(new ListViewItem() { Content = "begins with", Tag = CamlFilterTypes.BeginsWith }); ComparisonTypes.Add(new ListViewItem() { Content = "contains", Tag = CamlFilterTypes.Contains }); ComparisonTypeComboBox.ItemsSource = ComparisonTypes; }
public CamlFilters GetFilters() { CamlFilters filters = new CamlFilters(); filters.IsOr = false; List <CriteriaPaneItem> items = (List <CriteriaPaneItem>)CriteriaGrid.ItemsSource; foreach (CriteriaPaneItem item in items) { CamlFilters filters1 = new CamlFilters(); filters1.IsOr = true; if (string.IsNullOrEmpty(item.Filter1) == false) { CamlFilter filter = new CamlFilter(item.FieldInternalName, item.FieldType, CamlFilterTypes.Equals, item.Filter1); filters1.Add(filter); } if (string.IsNullOrEmpty(item.Filter2) == false) { CamlFilter filter = new CamlFilter(item.FieldInternalName, item.FieldType, CamlFilterTypes.Equals, item.Filter2); filters1.Add(filter); } if (string.IsNullOrEmpty(item.Filter3) == false) { CamlFilter filter = new CamlFilter(item.FieldInternalName, item.FieldType, CamlFilterTypes.Equals, item.Filter3); filters1.Add(filter); } if (string.IsNullOrEmpty(item.Filter4) == false) { CamlFilter filter = new CamlFilter(item.FieldInternalName, item.FieldType, CamlFilterTypes.Equals, item.Filter4); filters1.Add(filter); } if (filters1.Filters.Count > 0) { filters.Add(filters1); } } return(filters); }
private void AddFilterButton_Click(object sender, RoutedEventArgs e) { FilterEditControl filterControl = new FilterEditControl(); MenuItem menuItem = (MenuItem)e.Source; //ItemCollection items = (ItemCollection)button.DataContext; CamlFilters parentFilters = (CamlFilters)menuItem.Tag; CamlFilter filter = new CamlFilter(); filterControl.Initialize(SourceFields, filter); if (filterControl.ShowDialog(null, "Filter") == true) { parentFilters.Filters.Add(filter); PopulateFilters(); /* * items.Clear(); * PopulateFilters(items, parentFilters); */ } }
private static ConditionExpression GetSQLFilterString(CamlFilter filter) { ConditionExpression conditionExpression = new ConditionExpression(); string filterString = string.Empty; string fieldValue = ""; conditionExpression.AttributeName = filter.FieldName; switch (filter.FieldType) { case FieldTypes.Boolean: bool boolValue; if (filter.FilterValue == "0") { fieldValue = "0"; } else { fieldValue = "1"; } if (Boolean.TryParse(filter.FilterValue, out boolValue) == true) { fieldValue = (boolValue ? "1" : "0"); } break; case FieldTypes.Number: decimal decimalValue; if (Decimal.TryParse(filter.FilterValue, out decimalValue) == true) { fieldValue = decimalValue.ToString(); } break; default: fieldValue = filter.FilterValue; break; } conditionExpression.Values.Add(fieldValue); switch (filter.FilterType) { case CamlFilterTypes.BeginsWith: conditionExpression.Operator = ConditionOperator.BeginsWith; break; case CamlFilterTypes.Contains: conditionExpression.Operator = ConditionOperator.Contains; break; case CamlFilterTypes.Equals: conditionExpression.Operator = ConditionOperator.Equal; break; case CamlFilterTypes.EqualsGreater: conditionExpression.Operator = ConditionOperator.GreaterEqual; break; case CamlFilterTypes.EqualsLesser: conditionExpression.Operator = ConditionOperator.LessEqual; break; case CamlFilterTypes.Greater: conditionExpression.Operator = ConditionOperator.GreaterThan; break; case CamlFilterTypes.Lesser: conditionExpression.Operator = ConditionOperator.LessThan; break; case CamlFilterTypes.NotEqual: conditionExpression.Operator = ConditionOperator.NotEqual; break; default: conditionExpression.Operator = ConditionOperator.Equal; break; } return(conditionExpression); }
private static string GetSQLFilterString(CamlFilter filter) { string filterString = string.Empty; string fieldValue = ""; string fieldName = filter.FieldName; switch (filter.FieldType) { case FieldTypes.Boolean: bool boolValue; if (filter.FilterValue == "0") { fieldValue = "0"; } else { fieldValue = "1"; } if (Boolean.TryParse(filter.FilterValue, out boolValue) == true) { fieldValue = (boolValue ? "1" : "0"); } break; case FieldTypes.Number: decimal decimalValue; if (Decimal.TryParse(filter.FilterValue, out decimalValue) == true) { fieldValue = decimalValue.ToString(); } break; default: fieldValue = "'" + filter.FilterValue + "'"; break; } switch (filter.FilterType) { case CamlFilterTypes.BeginsWith: filterString = "charindex(" + fieldValue + ", " + filter.FieldName + ") = 1"; break; case CamlFilterTypes.Contains: filterString = "charindex(" + fieldValue + ", " + filter.FieldName + ") >= 1"; break; case CamlFilterTypes.Equals: filterString = filter.FieldName + " = " + fieldValue; break; case CamlFilterTypes.EqualsGreater: filterString = filter.FieldName + " >= " + fieldValue; break; case CamlFilterTypes.EqualsLesser: filterString = filter.FieldName + " <= " + fieldValue; break; case CamlFilterTypes.Greater: filterString = filter.FieldName + " > " + fieldValue; break; case CamlFilterTypes.Lesser: filterString = filter.FieldName + " < " + fieldValue; break; case CamlFilterTypes.NotEqual: filterString = filter.FieldName + " <> " + fieldValue; break; default: filterString = filter.FieldName + "=" + fieldValue; break; } return(filterString); }