Beispiel #1
0
        private static string GetSQLFiltersString(CamlFilters filters)
        {
            string filtersString = string.Empty;

            foreach (CamlFilter filter in filters.Filters)
            {
                if (string.IsNullOrEmpty(filtersString) == false)
                {
                    filtersString += filters.IsOr ? " OR " : " AND ";
                }

                filtersString += GetSQLFilterString(filter);
            }

            foreach (CamlFilters filters1 in filters.FilterCollections)
            {
                if (string.IsNullOrEmpty(filtersString) == false)
                {
                    filtersString += filters.IsOr ? " OR " : " AND ";
                }

                filtersString += GetSQLFiltersString(filters1);
            }

            if (string.IsNullOrEmpty(filtersString) == false)
            {
                filtersString = "(" + filtersString + ")";
            }

            return(filtersString);
        }
Beispiel #2
0
        void BindListView_Callback(object item, DateTime dateTime)
        {
            int    itemCount;
            string listItemCollectionPositionNext = String.Empty;

            object[]    args             = ((object[])item);
            Folder      selectedFolder   = (Folder)args[0];
            IView       selectedView     = (IView)args[1];
            string      sortedFieldName  = (string)args[2];
            bool        isAsc            = (bool)args[3];
            int         currentPageIndex = (int)args[4];
            string      currentListItemCollectionPositionNext = (string)args[5];
            CamlFilters customFilters = (CamlFilters)args[6];

            SiteSetting siteSetting = ConfigurationManager.GetInstance().GetSiteSetting(selectedFolder.SiteSettingID);

            List <IItem>  items   = ApplicationContext.Current.GetListItems(siteSetting, selectedFolder, selectedView, sortedFieldName, isAsc, currentPageIndex, currentListItemCollectionPositionNext, customFilters, false, out listItemCollectionPositionNext, out itemCount);
            List <Folder> folders = null;

            if (selectedFolder.Folders.Count > 0)
            {
                folders = selectedFolder.Folders;
            }
            else
            {
                folders = ApplicationContext.Current.GetSubFolders(siteSetting, selectedFolder, null);
            }

            LoadItems(selectedView, folders, items, listItemCollectionPositionNext, itemCount);
        }
        public void PopulateSQLServerTextEditor(string tableName, CamlFilters filters, List <CamlFieldRef> viewFields, List <CamlOrderBy> orderBys, CamlQueryOptions queryOptions)
        {
            string sqlString = SQLManager.GetSQLString(tableName, filters, viewFields, orderBys, queryOptions);

            QueryCamlTextBox.Text          = sqlString;
            ViewFieldsTabItem.Visibility   = Visibility.Hidden;
            QueryOptionsTabItem.Visibility = Visibility.Hidden;
        }
Beispiel #4
0
        private static string GetSQLWhereString(CamlFilters filters)
        {
            string whereString = GetSQLFiltersString(filters);

            if (string.IsNullOrEmpty(whereString) == false)
            {
                whereString = " WHERE " + whereString;
            }

            return(whereString);
        }
        private void OrMenuItem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem    menuItem      = (MenuItem)e.Source;
            CamlFilters parentFilters = (CamlFilters)menuItem.Tag;

            CamlFilters filters = new CamlFilters();

            filters.IsOr = true;
            parentFilters.FilterCollections.Add(filters);
            PopulateFilters();
        }
        private void RootTreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            FilterGroupEditControl filterControl = new FilterGroupEditControl();
            TreeViewItem           tvi           = (TreeViewItem)e.Source;
            CamlFilters            filters       = (CamlFilters)tvi.Tag;

            filterControl.Initialize(filters);
            if (filterControl.ShowDialog(null, "Filter") == true)
            {
                tvi.Header = filters.IsOr ? "OR" : "AND";
            }
        }
Beispiel #7
0
        public void LoadSubFolders(Folder parentFolder, Folder folder)
        {
            CustomFilters = new CamlFilters();

            LoadSubFolder_Callback(new object[] { parentFolder, folder }, DateTime.Now);

            //WorkItem workItem = new WorkItem("Populating subfolders");
            //workItem.CallbackFunction = new WorkRequestDelegate(LoadSubFolder_Callback);
            //workItem.CallbackData = new object[] { parentFolder, folder };
            //workItem.WorkItemType = WorkItem.WorkItemTypeEnum.NonCriticalWorkItem;
            //BackgroundManager.GetInstance().AddWorkItem(workItem);
        }
        public void PopulateCamlTextEditor(CamlFilters filters, List <CamlFieldRef> viewFields, List <CamlOrderBy> orderBys, CamlQueryOptions queryOptions)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlNode     query  = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");

            query.InnerXml = SPCamlManager.GetCamlString(filters, orderBys);

            XmlNode viewFieldsNode   = SPCamlManager.GetViewFieldsXmlNode(viewFields);
            XmlNode queryOptionsNode = SPCamlManager.GetQueryOptionsXmlNode(queryOptions);

            QueryCamlTextBox.Text        = query.OuterXml;
            ViewFieldsCamlTextBox.Text   = viewFieldsNode.OuterXml;
            QueryOptionsCamlTextBox.Text = queryOptionsNode.OuterXml;
        }
Beispiel #9
0
        public static string GetSQLString(string tableName, CamlFilters filters, List <CamlFieldRef> viewFields, List <CamlOrderBy> orderBys, CamlQueryOptions queryOptions)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("SELECT ");
            foreach (CamlFieldRef fieldRef in viewFields)
            {
                sb.Append(fieldRef.Name + " ,");
            }
            sb.Remove(sb.Length - 1, 1);
            sb.Append(" FROM " + tableName + " ");
            sb.Append(GetSQLWhereString(filters));
            sb.Append(GetSQLOrderByString(orderBys));

            return(sb.ToString());
        }
        private void ExecuteQueryButton_Click(object sender, RoutedEventArgs e)
        {
            Folder              selectedFolder           = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.AttachedObject;
            ISiteSetting        siteSetting              = ApplicationContext.Current.GetSiteSetting(selectedFolder.SiteSettingID);
            List <CamlFieldRef> viewFields               = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.GetViewFields();
            CamlQueryOptions    queryOptions             = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.GetQueryOptions();
            CamlFilters         filters                  = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.GetFilters();
            List <CamlOrderBy>  orderBys                 = ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.GetOrderBys();
            string              folderServerRelativePath = string.Empty;

            if (selectedFolder as SPFolder != null)
            {
                folderServerRelativePath = ((SPFolder)selectedFolder).ServerRelativePath;
            }
            ApplicationContext.Current.SPCamlStudio.QueriesPanel.ActiveQueryPanel.PopulateResults(siteSetting, selectedFolder.GetWebUrl(), selectedFolder.GetListName(), filters, viewFields, orderBys, queryOptions, folderServerRelativePath);
        }
        void _CriteriaPane_After_CriteriaChange()
        {
            Folder              selectedFolder = this.AttachedObject;
            ISiteSetting        siteSetting    = this.SiteSetting;
            List <CamlFieldRef> viewFields     = this.GetViewFields();
            CamlQueryOptions    queryOptions   = this.GetQueryOptions();
            CamlFilters         filters        = this.GetFilters();
            List <CamlOrderBy>  orderBys       = this.GetOrderBys();

            if (selectedFolder as Entities.SharePoint.SPFolder != null)
            {
                _CamlTextEditorPane.PopulateCamlTextEditor(filters, viewFields, orderBys, queryOptions);
            }
            else
            {
                _CamlTextEditorPane.PopulateSQLServerTextEditor(selectedFolder.Title, filters, viewFields, orderBys, queryOptions);
            }
        }
Beispiel #12
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);
        }
Beispiel #13
0
        public void SelectFolder(Folder parentFolder, Folder folder)
        {
            DisabledAllControls();
            if (folder == null)
            {
                return;
            }

            this.SelectedFolder       = folder;
            this.SelectedParentFolder = parentFolder;
            this.CustomFilters        = new CamlFilters();
            this.LoadSubFolders(parentFolder, folder);
            if (folder as SPFolder != null)
            {
                SelectViewButton.IsEnabled  = true;
                NewButton.IsEnabled         = true;
                SynchronizeButton.IsEnabled = true;
            }
        }
Beispiel #14
0
        private CamlFilters GetCustomFilters()
        {
            CamlFilters customFilters = new CamlFilters();

            if (string.IsNullOrEmpty(searchTextBox1.Text) == false)
            {
                if (this.SelectedFolder as SPFolder != null &&
                    (this.SelectedFolder as SPFolder).IsDocumentLibrary == true)
                {
                    customFilters.Add(new CamlFilter("FileLeafRef", FieldTypes.Text, CamlFilterTypes.Contains, searchTextBox1.Text));
                }
                else
                {
                    customFilters.Add(new CamlFilter("Title", FieldTypes.Text, CamlFilterTypes.Contains, searchTextBox1.Text));
                }
            }

            return(customFilters);
        }
        private static FilterExpression GetSQLFiltersString(CamlFilters filters)
        {
            FilterExpression filterExpression = new FilterExpression();

            filterExpression.FilterOperator = filters.IsOr == true ? LogicalOperator.Or : LogicalOperator.And;

            string filtersString = string.Empty;

            foreach (CamlFilter filter in filters.Filters)
            {
                filterExpression.Conditions.Add(GetSQLFilterString(filter));
            }

            foreach (CamlFilters filters1 in filters.FilterCollections)
            {
                filterExpression.Filters.Add(GetSQLFiltersString(filters1));
            }

            return(filterExpression);
        }
        public int GetUserObjectAccessDetails(ISiteSetting siteSetting, Guid objectId, Guid userId)
        {
            IOrganizationService organizationService = GetClientContext(siteSetting);
            QueryExpression      query   = new QueryExpression("principalobjectaccess");
            CamlFilters          filters = new CamlFilters();

            filters.IsOr = false;
            filters.Add(new CamlFilter("objectid", FieldTypes.Text, CamlFilterTypes.Equals, objectId.ToString()));
            filters.Add(new CamlFilter("principalid", FieldTypes.Text, CamlFilterTypes.Equals, userId.ToString()));
            query.Criteria  = GetFilterExpression(filters);
            query.ColumnSet = new ColumnSet(true);
            EntityCollection items = organizationService.RetrieveMultiple(query);

            if (items.Entities.Count > 0)
            {
                string accessrightsmask          = items.Entities[0]["accessrightsmask"].ToString();
                string inheritedaccessrightsmask = items.Entities[0]["inheritedaccessrightsmask"].ToString();
            }

            return(0);
        }
        private void AddGroupButton_Click(object sender, RoutedEventArgs e)
        {
            FilterGroupEditControl filterControl = new FilterGroupEditControl();
            Button         button        = (Button)e.Source;
            ItemCollection items         = (ItemCollection)button.DataContext;
            CamlFilters    parentFilters = (CamlFilters)button.Tag;

            CamlFilters filters = new CamlFilters();

            filterControl.Initialize(filters);
            if (filterControl.ShowDialog(null, "Filter") == true)
            {
                parentFilters.FilterCollections.Add(filters);
                PopulateFilters();

                /*
                 * items.Clear();
                 * PopulateFilters(items, parentFilters);
                 */
            }
        }
        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);
                 */
            }
        }
Beispiel #20
0
        public void PopulateResults(ISiteSetting _siteSetting, string webUrl, string listName, CamlFilters _filters, List<CamlFieldRef> _viewFields, List<CamlOrderBy> _orderBys, CamlQueryOptions _queryOptions, string folderServerRelativePath)
        {
            this.FolderServerRelativePath = folderServerRelativePath;
            siteSetting = _siteSetting;
            filters = _filters;
            viewFields = _viewFields;
            orderBys= _orderBys;
            queryOptions = _queryOptions;
            string listItemCollectionPositionNext;
            int itemCount;
            List<IItem> items = ApplicationContext.Current.GetListItems(siteSetting, orderBys, filters, viewFields, queryOptions, webUrl, listName, out listItemCollectionPositionNext, out itemCount);
            DataTable dataTable = new DataTable();
            ResultGrid.Columns.Clear();
            foreach (CamlFieldRef fieldRef in _viewFields)
            {
                DataGridTextColumn column = new DataGridTextColumn();
                column.IsReadOnly = true;
                column.Binding = new Binding(fieldRef.Name);
                column.Header = fieldRef.DisplayName;
                ResultGrid.Columns.Add(column);
                dataTable.Columns.Add(fieldRef.Name);
            }
            foreach (IItem item in items)
            {
                DataRow row = dataTable.NewRow();
                foreach (CamlFieldRef fieldRef in _viewFields)
                {
                    string key = fieldRef.Name;
                    if(item.Properties.ContainsKey(key) == true)
                        row[fieldRef.Name] = item.Properties[fieldRef.Name];
                }
                
                dataTable.Rows.Add(row);
            }

            ResultGrid.ItemsSource = dataTable.AsDataView();
            AttachContextMenu();
        }
Beispiel #21
0
        public static string GetCamlString(CamlFilters filters)
        {
            List <CamlOrderBy> orderBys = new List <CamlOrderBy>();

            return(GetWhereCamlString(filters) + GetOrderByCamlString(orderBys));
        }
 private static FilterExpression GetFilterExpression(CamlFilters filters)
 {
     return(GetSQLFiltersString(filters));
 }
        public List <IItem> GetListItems(ISiteSetting siteSetting, List <CamlOrderBy> orderBys, CamlFilters filters, List <CamlFieldRef> viewFields, CamlQueryOptions queryOptions, string webUrl, string listName, out string listItemCollectionPositionNext, out int itemCount)
        {
            try
            {
                List <IItem>         results             = new List <IItem>();
                IOrganizationService organizationService = GetClientContext(siteSetting);

                var query = new QueryExpression(listName);
                query.ColumnSet.AddColumns(viewFields.Select(t => t.Name).ToArray());
                query.Criteria = GetFilterExpression(filters);
                //query.Criteria.Filters[0].FilterOperator = LogicalOperator.
                EntityCollection entities = organizationService.RetrieveMultiple(query);
                itemCount = entities.TotalRecordCount;
                listItemCollectionPositionNext = string.Empty;

                foreach (Entity entity in entities.Entities)
                {
                    CRMRecord record = new CRMRecord(siteSetting.ID);
                    foreach (CamlFieldRef viewField in viewFields)
                    {
                        string viewFieldName = viewField.Name;
                        if (entity.Attributes.ContainsKey(viewFieldName) == true)
                        {
                            string value    = string.Empty;
                            object objValue = entity.Attributes[viewFieldName];
                            if (objValue != null)
                            {
                                if (objValue is EntityReference)
                                {
                                    EntityReference entityReference = (EntityReference)objValue;
                                    value = entityReference.Id.ToString() + ";#" + entityReference.Name;
                                }
                                else if (objValue is EntityReferenceCollection)
                                {
                                    EntityReferenceCollection entityReferences = (EntityReferenceCollection)objValue;
                                    for (int i = 0; i < entityReferences.Count; i++)
                                    {
                                        EntityReference entityReference = entityReferences[i];
                                        if (i > 0)
                                        {
                                            value += ";#";
                                        }
                                        value += entityReference.Id.ToString() + ";#" + entityReference.Name;
                                    }
                                }
                                else if (objValue is DateTime)
                                {
                                    value = ((DateTime)objValue).ToString("yyyy-MM-ddTHH:mm:ssZ");
                                }
                                else
                                {
                                    value = entity.Attributes[viewFieldName].ToString();
                                }
                            }
                            record.Properties.Add(viewFieldName, value);
                        }
                    }

                    results.Add(record);
                }

                return(results);
            }
            catch (Exception ex)
            {
                string errorMessage = errorMessage = ex.Message;

                errorMessage += Environment.NewLine + ex.StackTrace;
                Logger.Info(errorMessage, "Service");


                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                //LogManager.LogAndShowException(methodName, ex);
                throw ex;
            }
        }
        public List <IView> GetPersonalViews(ISiteSetting siteSetting, CRMEntity entity)
        {
            Logger.Warning("GetPersonalViews 0", "GetPersonalViews");

            List <IView>         views = new List <IView>();
            IOrganizationService organizationService = GetClientContext(siteSetting);

            // Dictionary to contain all the saved views
            Dictionary <Guid, Entity> dictPersonalViews = new Dictionary <Guid, Entity>();

            // retrieve first all the CRM Users
            QueryExpression systemUsers = new QueryExpression("systemuser");
            CamlFilters     filters1    = new CamlFilters();

            filters1.Add(new CamlFilter("isdisabled", FieldTypes.Text, CamlFilterTypes.Equals, "FALSE"));
            systemUsers.Criteria = GetFilterExpression(filters1);


            systemUsers.ColumnSet = new ColumnSet(true);
            EntityCollection userCollection = organizationService.RetrieveMultiple(systemUsers);

            Logger.Warning("GetPersonalViews 1", "GetPersonalViews");

            Logger.Warning("Count:" + userCollection.Entities.Count, "GetPersonalViews");
            int currentIndex = 0;

            // for each User we launch the query to retrieve the saved views
            foreach (Entity systemUser in userCollection.Entities)
            {
                try
                {
                    currentIndex++;
                    Logger.Warning("Index:" + currentIndex, "GetPersonalViews");

                    QueryExpression personalViews = new QueryExpression("userquery");
                    CamlFilters     filters       = new CamlFilters();
                    filters.Add(new CamlFilter("returnedtypecode", FieldTypes.Text, CamlFilterTypes.Equals, entity.LogicalName));
                    personalViews.Criteria = GetFilterExpression(filters);
                    Logger.Warning("GetPersonalViews 2" + entity.LogicalName, "GetPersonalViews");

                    personalViews.ColumnSet = new ColumnSet(true);

                    // we set the CallerId property to impersonate the current iteration user
                    //Logger.Warning("GetPersonalViews 3" + entity.LogicalName, "GetPersonalViews");
                    ((OrganizationServiceProxy)organizationService).CallerId = systemUser.Id;
                    //Logger.Warning("GetPersonalViews 4" + entity.LogicalName, "GetPersonalViews");
                    EntityCollection viewCollection = organizationService.RetrieveMultiple(personalViews);
                    //Logger.Warning("GetPersonalViews 5" + entity.LogicalName, "GetPersonalViews");

                    foreach (Entity personalView in viewCollection.Entities)
                    {
                        // we want a list without duplicates (shared views or automatically shared to SYSTEM and INTEGRATION users)
                        if (!dictPersonalViews.ContainsKey(personalView.Id))
                        {
                            dictPersonalViews.Add(personalView.Id, personalView);
                        }
                    }
                }
                catch (Exception ex1)
                {
                    Logger.Error(ex1, "GetPersonalViews");
                }
            }

            Logger.Warning("GetPersonalViews 6" + entity.LogicalName, "GetPersonalViews");

            // we can process the values (Entity objects) of the dictionary
            foreach (Entity personalView in dictPersonalViews.Values)
            {
                string          viewName       = personalView["name"].ToString();
                string          viewFetchXml   = personalView["fetchxml"].ToString();
                EntityReference viewOwnerIdRef = (EntityReference)personalView["ownerid"];


                CRMView view = new CRMView(personalView.Id.ToString(), viewName, siteSetting.ID, entity);
                views.Add(view);
            }
            Logger.Warning("GetPersonalViews 7" + entity.LogicalName, "GetPersonalViews");


            return(views);
        }
        public List <IItem> GetListItems(ISiteSetting siteSetting, Folder folder, IView view, string sortField, bool isAsc, int currentPageIndex, string currentListItemCollectionPositionNext, CamlFilters filters, bool isRecursive, out string listItemCollectionPositionNext, out int itemCount)
        {
            FSFolder _folder = (FSFolder)folder;

            listItemCollectionPositionNext = String.Empty;
            itemCount = Directory.GetFiles(_folder.Path).Count();
            List <IItem> items = new List <IItem>();

            foreach (string filePath in Directory.GetFiles(_folder.Path))
            {
                FileInfo fileInfo = new FileInfo(filePath);
                FSItem   item     = new FSItem(folder.SiteSettingID, fileInfo);
                items.Add(item);
            }
            return(items);
        }
        public override List <IItem> GetListItems(ISiteSetting siteSetting, Folder folder, IView view, string sortField, bool isAsc, int currentPageIndex, string currentListItemCollectionPositionNext, CamlFilters filters, bool isRecursive, out string listItemCollectionPositionNext, out int itemCount)
        {
            IServiceManager serviceManager = ServiceManagerFactory.GetServiceManager(siteSetting.SiteSettingType);

            return(serviceManager.GetListItems(siteSetting, folder, view, sortField, isAsc, currentPageIndex, currentListItemCollectionPositionNext, filters, true, out listItemCollectionPositionNext, out itemCount));
        }
 public List <IItem> GetListItems(ISiteSetting siteSetting, List <CamlOrderBy> orderBys, CamlFilters filters, List <CamlFieldRef> viewFields, CamlQueryOptions queryOptions, string webUrl, string listName, out string listItemCollectionPositionNext, out int itemCount)
 {
     throw new NotImplementedException();
 }
        public override List <IItem> GetListItems(ISiteSetting siteSetting, List <CamlOrderBy> orderBys, CamlFilters filters, List <CamlFieldRef> viewFields, CamlQueryOptions queryOptions, string webUrl, string listName, out string listItemCollectionPositionNext, out int itemCount)
        {
            IServiceManager serviceManager = ServiceManagerFactory.GetServiceManager(siteSetting.SiteSettingType);

            return(serviceManager.GetListItems(siteSetting, orderBys, filters, viewFields, queryOptions, webUrl, listName, out listItemCollectionPositionNext, out itemCount));
        }
Beispiel #29
0
        private void LoadTasks_Callback(object _item, DateTime dateTime)
        {
            object[]         args             = ((object[])_item);
            SiteSetting      siteSetting      = (SiteSetting)args[0];
            TaskListLocation taskListLocation = (TaskListLocation)args[1];
            ListView         tasksListView    = (ListView)args[2];
            List <string>    assignedTos      = (List <string>)args[3];
            List <string>    statuses         = (List <string>)args[4];
            List <string>    priorities       = (List <string>)args[5];
            Image            loadingImage     = (Image)args[6];
            Image            refreshImage     = (Image)args[7];

            List <Task> tasks = new List <Task>();

            CamlFilters customFilters = new CamlFilters();

            customFilters.IsOr = false;
            if (assignedTos.Count == 0)
            {
                customFilters.Add(new CamlFilter("AssignedTo", FieldTypes.Number, CamlFilterTypes.Equals, "[Me]"));
            }
            foreach (string filterValue in statuses)
            {
                customFilters.Add(new CamlFilter("Status", FieldTypes.Choice, CamlFilterTypes.NotEqual, filterValue));
            }
            foreach (string filterValue in priorities)
            {
                customFilters.Add(new CamlFilter("Priority", FieldTypes.Choice, CamlFilterTypes.NotEqual, filterValue));
            }

            int    itemCount;
            string listItemCollectionPositionNext = String.Empty;

            List <IItem> items = ServiceManagerFactory.GetServiceManager(siteSetting.SiteSettingType).GetListItems(siteSetting, taskListLocation.Folder, null, string.Empty, true, 0, string.Empty, customFilters, false, out listItemCollectionPositionNext, out itemCount);

            if (items.Count == 0)
            {
                Task emptyTask = new Task();
                emptyTask.Title = Languages.Translate("No items to display");
                tasks.Add(emptyTask);
            }
            foreach (IItem item in items)
            {
                Task task = new Task();
                task.SiteSettingID = siteSetting.ID;
                task.ID            = item.GetID();
                task.Title         = item.Title;
                if (item.Properties.ContainsKey("ows_Priority") == true)
                {
                    task.Priority = item.Properties["ows_Priority"];
                }
                if (item.Properties.ContainsKey("ows_Status") == true)
                {
                    task.Status = item.Properties["ows_Status"];
                }
                if (item.Properties.ContainsKey("ows_AssignedTo") == true)
                {
                    string assignedTo = item.Properties["ows_AssignedTo"];
                    if (string.IsNullOrEmpty(assignedTo) == false)
                    {
                        string[] assignedToArray = assignedTo.Split(new string[] { ";#" }, StringSplitOptions.None);
                        task.AssignedToID = int.Parse(assignedToArray[0]);
                        task.AssignedTo   = assignedToArray[1];
                    }
                }

                if (item.Properties.ContainsKey("ows_WorkflowLink") == true)
                {
                    string workflowLink = item.Properties["ows_WorkflowLink"];
                    if (string.IsNullOrEmpty(workflowLink) == false)
                    {
                        int titleStartIndex = workflowLink.IndexOf(",");
                        task.RelatedContentUrl   = workflowLink.Substring(0, titleStartIndex);
                        task.RelatedContentTitle = workflowLink.Substring(titleStartIndex + 1);
                    }
                }


                task.ListUrl = taskListLocation.Folder.GetUrl();
                tasks.Add(task);
            }

            this.TasksListView.Dispatcher.Invoke(DispatcherPriority.Input, new ThreadStart(() =>
            {
                CollectionViewSource cvs = new CollectionViewSource();
                cvs.Source = tasks;
                cvs.GroupDescriptions.Add(new PropertyGroupDescription("ListUrl"));

                this.TasksListView.ItemsSource = cvs.View;

                refreshImage.Visibility = System.Windows.Visibility.Visible;
                loadingImage.Visibility = System.Windows.Visibility.Collapsed;
            }));

            this.IsDataLoaded = true;
        }
Beispiel #30
0
 /*
  * public static string GetCamlFilterTypeString(CamlFilterTypes filterType)
  * {
  *  string camlString = String.Empty;
  *  switch (filterType)
  *  {
  *      case CamlFilterTypes.BeginsWith:
  *          camlString = "BeginsWith";
  *          break;
  *      case CamlFilterTypes.Contains:
  *          camlString = "Contains";
  *          break;
  *      case CamlFilterTypes.Equals:
  *          camlString = "Eq";
  *          break;
  *      case CamlFilterTypes.EqualsGreater:
  *          camlString = "Geq";
  *          break;
  *      case CamlFilterTypes.EqualsLesser:
  *          camlString = "Leq";
  *          break;
  *      case CamlFilterTypes.Greater:
  *          camlString = "Gt";
  *          break;
  *      case CamlFilterTypes.NotEqual:
  *          camlString = "Neq";
  *          break;
  *  }
  *  return camlString;
  * }
  * public static string GetCamlFieldTypeString(FieldTypes fieldType)
  * {
  *  string camlString = String.Empty;
  *  switch (fieldType)
  *  {
  *      case FieldTypes.Boolean:
  *          camlString = "boolean";
  *          break;
  *      case FieldTypes.Choice:
  *          camlString = "Text";
  *          break;
  *      case FieldTypes.Computed:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.ContentType:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.ContentTypeId:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.Counter:
  *          camlString = "number";
  *          break;
  *      case FieldTypes.DateTime:
  *          camlString = "DateTime";
  *          break;
  *      case FieldTypes.File:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.Lookup:
  *          camlString = "number";
  *          break;
  *      case FieldTypes.Note:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.Number:
  *          camlString = "number";
  *          break;
  *      case FieldTypes.Text:
  *          camlString = "text";
  *          break;
  *      case FieldTypes.User:
  *          camlString = "text";
  *          break;
  *  }
  *  return camlString;
  * }
  *
  * private static string ReplaceSpecialCharachters(string value)
  * {
  *  if (value.Equals("[Me]", StringComparison.InvariantCultureIgnoreCase) == true)
  *  {
  *      return "<UserID Type=\"Integer\" />";
  *  }
  *
  *  return "<![CDATA[" + value + "]]>";
  * }
  *
  * private static string GetCamlString(CamlFilter filter)
  * {
  *  string caml = String.Empty;
  *  string fieldTypeString = SPCamlManager.GetCamlFieldTypeString(filter.FieldType);
  *  string filterTypeString = SPCamlManager.GetCamlFilterTypeString(filter.FilterType);
  *  caml = "<" + filterTypeString + "><FieldRef Name=\"" + filter.FieldName + "\"/><Value Type=\"" + fieldTypeString + "\">" + ReplaceSpecialCharachters(filter.FilterValue) + "</Value></" + filterTypeString + ">";
  *  return caml;
  * }
  *
  * public static string GetCamlString(CamlFilters filters)
  * {
  *  StringBuilder camlStringBuilder = new StringBuilder();
  *  for (int i = 0; i < filters.Count; i = i + 2)
  *  {
  *      string camlString1 = GetCamlString(filters[i]);
  *      string combinationFilterTypeString = filters.GetCombinationFilterTypeString();
  *
  *      if (filters.Count > i + 1)
  *      {
  *          string camlString2 = GetCamlString(filters[i + 1]);
  *          camlStringBuilder.Append("<" + combinationFilterTypeString + ">");
  *          camlStringBuilder.Append(camlString1);
  *          camlStringBuilder.Append(camlString2);
  *          camlStringBuilder.Append("</" + combinationFilterTypeString + ">");
  *      }
  *      else
  *      {
  *          camlStringBuilder.Append(camlString1);
  *      }
  *      if (i > 1)
  *      {
  *          camlStringBuilder.Insert(0, "<" + combinationFilterTypeString + ">");
  *          camlStringBuilder.Append("</" + combinationFilterTypeString + ">");
  *      }
  *  }
  *  return camlStringBuilder.ToString();
  * }
  * public static string GetCamlString(List<string> filters, bool isOr)
  * {
  *  StringBuilder camlStringBuilder = new StringBuilder();
  *  string combinationFilterTypeString = (isOr == true ? "Or" : "And");
  *  for (int i = 0; i < filters.Count; i = i + 2)
  *  {
  *      string camlString1 = filters[i];
  *      if (filters.Count > i + 1)
  *      {
  *          string camlString2 = filters[i + 1];
  *          camlStringBuilder.Append("<" + combinationFilterTypeString + ">");
  *          camlStringBuilder.Append(camlString1);
  *          camlStringBuilder.Append(camlString2);
  *          camlStringBuilder.Append("</" + combinationFilterTypeString + ">");
  *      }
  *      else
  *      {
  *          camlStringBuilder.Append(camlString1);
  *      }
  *      if (i > 1)
  *      {
  *          camlStringBuilder.Insert(0, "<" + combinationFilterTypeString + ">");
  *          camlStringBuilder.Append("</" + combinationFilterTypeString + ">");
  *      }
  *  }
  *  return camlStringBuilder.ToString();
  * }
  */
 public static string GetWhereCamlString(CamlFilters filters)
 {
     return("<Where>" + filters.ToCaml() + "</Where>");
 }