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