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();
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #8
0
        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);
        }