private void treeView_Mailbox_BeforeExpand(object sender, TreeViewCancelEventArgs e) { if (doubleClicked) { // Disable expanding after double clock. e.Cancel = true; doubleClicked = false; return; } // Get child folders. FolderInfo folderInfo = (FolderInfo)e.Node.Tag; if (folderInfo.Expanded == false) { if (folderInfo.Type == FolderContentType.DummyCalendarGroupRoot) { expandingNodeHasDummyNode = true; PrepareCalendarGroupsAsync(e.Node); folderInfo.Expanded = true; e.Node.Tag = folderInfo; } else if (folderInfo.Type == FolderContentType.CalendarGroup) { expandingNodeHasDummyNode = true; PrepareCalendarFoldersAsync(folderInfo.ID, e.Node); folderInfo.Expanded = true; e.Node.Tag = folderInfo; } else if (folderInfo.Type == FolderContentType.DummyTaskGroupRoot) { expandingNodeHasDummyNode = true; PrepareTaskGroupsAsync(e.Node); folderInfo.Expanded = true; e.Node.Tag = folderInfo; } else if (folderInfo.Type == FolderContentType.TaskGroup) { expandingNodeHasDummyNode = true; PrepareTaskFoldersAsync(folderInfo.ID, e.Node); folderInfo.Expanded = true; e.Node.Tag = folderInfo; } else if (folderInfo.Type == FolderContentType.Contact || folderInfo.Type == FolderContentType.Message || folderInfo.Type == FolderContentType.Drafts || folderInfo.Type == FolderContentType.MsgFolderRoot) { expandingNodeHasDummyNode = true; PrepareChildMailFoldersAsync(folderInfo.ID, e.Node); PrepareChildContactFoldersAsync(folderInfo.ID, e.Node); folderInfo.Expanded = true; e.Node.Tag = folderInfo; } } }
public AttachmentViewerForm(PublicClientApplication PCA, IAccount CurrentUser, FolderInfo TargetFolderInfo, string TargetItemID, string TargetItemSubject) { InitializeComponent(); pca = PCA; currentUser = CurrentUser; targetFolder = TargetFolderInfo; targetItemId = TargetItemID; targetItemSubject = TargetItemSubject; }
private async void treeView_Mailbox_AfterSelect(object sender, TreeViewEventArgs e) { // Show information of selected folder. // Reset DataGrid. for (int i = dataGridView_FolderProps.Rows.Count - 1; i >= 0; i--) { dataGridView_FolderProps.Rows.RemoveAt(i); } for (int i = dataGridView_FolderProps.Columns.Count - 1; i >= 0; i--) { dataGridView_FolderProps.Columns.RemoveAt(i); } if (treeView_Mailbox.InvokeRequired) { // Another thread is working. We should do nothing. return; } // Get folder props. if (treeView_Mailbox.SelectedNode == null || treeView_Mailbox.SelectedNode.Tag == null) { // Perhaps the user chose another folder by using the keyboard. return; } FolderInfo info = (FolderInfo)treeView_Mailbox.SelectedNode.Tag; ViewerHelper.Data.OutlookRestApiBaseObject outlookFolder; try { switch (info.Type) { case FolderContentType.Message: case FolderContentType.MsgFolderRoot: case FolderContentType.Drafts: outlookFolder = await viewerRequestHelper.GetMailFolderAsync(info.ID); break; case FolderContentType.Contact: outlookFolder = await viewerRequestHelper.GetContactFolderAsync(info.ID); break; case FolderContentType.CalendarGroup: outlookFolder = await viewerRequestHelper.GetCalendarGroupAsync(info.ID); break; case FolderContentType.Calendar: outlookFolder = await viewerRequestHelper.GetCalendarAsync(info.ID); break; case FolderContentType.TaskGroup: outlookFolder = await viewerRequestHelper.GetTaskGroupAsync(info.ID); break; case FolderContentType.Task: outlookFolder = await viewerRequestHelper.GetTaskFolderAsync(info.ID); break; default: return; } // Add columns. dataGridView_FolderProps.Columns.Add("Property", "Property"); dataGridView_FolderProps.Columns.Add("Value", "Value"); dataGridView_FolderProps.Columns.Add("Type", "Type"); // Add rows. foreach (var item in outlookFolder.GetRawProperties()) { DataGridViewRow propTotalItemCount = new DataGridViewRow(); propTotalItemCount.CreateCells(dataGridView_FolderProps, new object[] { item.Key, (item.Value == null) ? "" : item.Value.ToString(), (item.Value == null) ? "null" : item.Value.GetType().ToString() }); dataGridView_FolderProps.Rows.Add(propTotalItemCount); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Office365APIEditor"); return; } }
public FolderViewerForm(PublicClientApplication PCA, Microsoft.Identity.Client.IUser CurrentUser, FolderInfo TargetFolderInfo, string TargetFolderDisplayName) { InitializeComponent(); pca = PCA; currentUser = CurrentUser; targetFolder = TargetFolderInfo; targetFolderDisplayName = TargetFolderDisplayName; }
public FolderViewerForm(PublicClientApplication PCA, string UserEmailAddress, FolderInfo TargetFolderInfo, string TargetFolderDisplayName) { InitializeComponent(); pca = PCA; email = UserEmailAddress; targetFolder = TargetFolderInfo; targetFolderDisplayName = TargetFolderDisplayName; }
private async void GetChildContactFolders(string FolderId, TreeNode FolderNode) { FolderInfo folderInfo = (FolderInfo)FolderNode.Tag; var childContactFolderResults = await client.Me.ContactFolders[FolderId].ChildFolders .OrderBy(f => f.DisplayName) .Take(50) .Select(f => new { f.Id, f.DisplayName }) .ExecuteAsync(); bool morePages = false; if (childContactFolderResults.CurrentPage.Count == 0) { if (expandingNodeHasDummyNode) { // Remove a dummy node. FolderNode.Nodes[0].Remove(); expandingNodeHasDummyNode = false; } return; } do { foreach (var folder in childContactFolderResults.CurrentPage) { TreeNode node = new TreeNode(folder.DisplayName); node.Tag = new FolderInfo() { ID = folder.Id, Type = FolderContentType.Contact, Expanded = false }; node.ContextMenuStrip = contextMenuStrip_FolderTreeNode; node.Nodes.Add(new TreeNode()); // Add a dummy node. if (treeView_Mailbox.InvokeRequired) { treeView_Mailbox.Invoke(new MethodInvoker(delegate { FolderNode.Nodes.Add(node); if (expandingNodeHasDummyNode) { // Remove a dummy node. FolderNode.Nodes[0].Remove(); expandingNodeHasDummyNode = false; } })); } else { FolderNode.Nodes.Add(node); if (expandingNodeHasDummyNode) { // Remove a dummy node. FolderNode.Nodes[0].Remove(); expandingNodeHasDummyNode = false; } } } if (childContactFolderResults.MorePagesAvailable) { morePages = true; childContactFolderResults = await childContactFolderResults.GetNextPageAsync(); } else { morePages = false; } } while (morePages); }
public AttachmentViewerForm(PublicClientApplication PCA, string UserEmailAddress, FolderInfo TargetFolderInfo, string TargetItemID, string TargetItemSubject) { InitializeComponent(); pca = PCA; email = UserEmailAddress; targetFolder = TargetFolderInfo; targetItemId = TargetItemID; targetItemSubject = TargetItemSubject; }