private void LoadChildNodesCollection(IStorePropertyBag[] rows, int startIndex) { for (int i = startIndex; i < rows.Length; i++) { IStorePropertyBag storePropertyBag = rows[i]; if (TaskGroup.IsTaskSection(storePropertyBag) && TaskGroup.IsFolderTreeData(storePropertyBag) && TaskGroup.IsTaskGroupEntry(storePropertyBag)) { byte[] valueOrDefault = storePropertyBag.GetValueOrDefault <byte[]>(FolderTreeDataSchema.ParentGroupClassId, null); if (valueOrDefault == null || valueOrDefault.Length != 16) { ExTraceGlobals.StorageTracer.TraceDebug <int>(0L, "Found TaskGroupEntry with invalid parent group id. ArrayLength: {0}", (valueOrDefault == null) ? -1 : valueOrDefault.Length); } else { Guid g = new Guid(valueOrDefault); if (this.groupClassId.Equals(g)) { TaskGroupEntryInfo taskGroupEntryInfoFromRow = TaskGroupEntry.GetTaskGroupEntryInfoFromRow(storePropertyBag); if (taskGroupEntryInfoFromRow != null) { this.children.Add(taskGroupEntryInfoFromRow); } } } } } this.hasLoadedTaskFoldersCollection = true; }
private static void AddTaskFolderToList(IStorePropertyBag row, Dictionary <Guid, TaskGroupInfo> guidToGroupMapping, Dictionary <StoreObjectId, TaskGroupEntryInfo> taskFolderIdToGroupEntryMapping, TaskGroupInfoList taskGroups) { TaskGroupEntryInfo taskGroupEntryInfoFromRow = TaskGroupEntry.GetTaskGroupEntryInfoFromRow(row); if (taskGroupEntryInfoFromRow == null) { return; } TaskGroupInfo taskGroupInfo; if (!guidToGroupMapping.TryGetValue(taskGroupEntryInfoFromRow.ParentGroupClassId, out taskGroupInfo)) { ExTraceGlobals.StorageTracer.TraceDebug <string, Guid, VersionedId>(0L, "Found a task group entry with an invalid parent id. TaskFolderName: {0}, ParentId: {1}, ItemId: {2}", taskGroupEntryInfoFromRow.FolderName, taskGroupEntryInfoFromRow.ParentGroupClassId, taskGroupEntryInfoFromRow.Id); return; } TaskGroupEntryInfo taskGroupEntryInfo; if (taskFolderIdToGroupEntryMapping.TryGetValue(taskGroupEntryInfoFromRow.TaskFolderId, out taskGroupEntryInfo)) { if (taskGroupEntryInfo.LastModifiedTime.CompareTo(taskGroupEntryInfoFromRow.LastModifiedTime) > 0) { taskGroups.DuplicateNodes.Add(taskGroupEntryInfoFromRow); return; } taskGroups.DuplicateNodes.Add(taskGroupEntryInfo); guidToGroupMapping[taskGroupEntryInfo.ParentGroupClassId].TaskFolders.Remove(taskGroupEntryInfo); taskFolderIdToGroupEntryMapping[taskGroupEntryInfoFromRow.TaskFolderId] = taskGroupEntryInfoFromRow; } else { taskFolderIdToGroupEntryMapping.Add(taskGroupEntryInfoFromRow.TaskFolderId, taskGroupEntryInfoFromRow); } taskGroupInfo.TaskFolders.Add(taskGroupEntryInfoFromRow); }
public static TaskGroupEntry Create(MailboxSession session, StoreObjectId taskFolderId, TaskGroup parentGroup) { Util.ThrowOnNullArgument(parentGroup, "parentGroup"); TaskGroupEntry taskGroupEntry = TaskGroupEntry.Create(session, taskFolderId, parentGroup.GroupClassId, parentGroup.GroupName); taskGroupEntry.parentGroup = parentGroup; return(taskGroupEntry); }
public static TaskGroupEntry Bind(MailboxSession session, StoreId storeId, ICollection <PropertyDefinition> propsToReturn) { Util.ThrowOnNullArgument(session, "session"); Util.ThrowOnNullArgument(storeId, "storeId"); TaskGroupEntry taskGroupEntry = ItemBuilder.ItemBind <TaskGroupEntry>(session, storeId, TaskGroupEntrySchema.Instance, propsToReturn); taskGroupEntry.MailboxSession = session; return(taskGroupEntry); }
internal static TaskGroupEntry Create(MailboxSession session, Guid parentGroupClassId, string parentGroupName) { Util.ThrowOnNullArgument(session, "session"); TaskGroupEntry taskGroupEntry = ItemBuilder.CreateNewItem <TaskGroupEntry>(session, session.GetDefaultFolderId(DefaultFolderType.CommonViews), ItemCreateInfo.TaskGroupEntryInfo, CreateMessageType.Associated); taskGroupEntry.MailboxSession = session; taskGroupEntry.ParentGroupClassId = parentGroupClassId; taskGroupEntry.ParentGroupName = parentGroupName; return(taskGroupEntry); }
internal static TaskGroupEntry Create(MailboxSession session, StoreObjectId taskFolderId, Guid parentGroupClassId, string parentGroupName) { Util.ThrowOnNullArgument(taskFolderId, "taskFolderId"); if (taskFolderId.ObjectType != StoreObjectType.TasksFolder && taskFolderId.ObjectType != StoreObjectType.SearchFolder) { throw new NotSupportedException("A task group entry can only be associated with a storeobject of type task folder."); } TaskGroupEntry taskGroupEntry = TaskGroupEntry.Create(session, parentGroupClassId, parentGroupName); taskGroupEntry.TaskFolderId = taskFolderId; taskGroupEntry.StoreEntryId = Microsoft.Exchange.Data.Storage.StoreEntryId.ToProviderStoreEntryId(session.MailboxOwner); return(taskGroupEntry); }
private static bool AddDefaultTaskFolder(MailboxSession session, TaskGroup taskGroup, DefaultFolderType folderType, string folderName) { bool result = true; using (TaskGroupEntry taskGroupEntry = TaskGroupEntry.Create(session, session.GetDefaultFolderId(folderType), FolderTreeData.MyFoldersClassId, taskGroup.GroupName)) { taskGroupEntry.FolderName = folderName; ConflictResolutionResult conflictResolutionResult = taskGroupEntry.Save(SaveMode.NoConflictResolution); if (conflictResolutionResult.SaveStatus != SaveResult.Success) { ExTraceGlobals.StorageTracer.TraceWarning <DefaultFolderType, SmtpAddress>(0L, "Unable to associate default task folder type: {0} with the MyTasks group for user: {1}. Attempting to delete default tasks group.", folderType, session.MailboxOwner.MailboxInfo.PrimarySmtpAddress); result = false; } } return(result); }
public static TaskGroupEntry Create(MailboxSession session, Folder taskFolder, TaskGroup parentGroup) { Util.ThrowOnNullArgument(parentGroup, "parentGroup"); Util.ThrowOnNullArgument(taskFolder, "TaskFolder"); return(TaskGroupEntry.Create(session, taskFolder.Id.ObjectId, parentGroup.GroupClassId, parentGroup.GroupName)); }
public TaskGroupEntryInfo GetTaskGroupEntryInfo() { return(TaskGroupEntry.GetTaskGroupEntryInfoFromRow(this)); }
public static TaskGroupEntry Bind(MailboxSession session, StoreId storeId) { return(TaskGroupEntry.Bind(session, storeId, null)); }