private async void treeView_Mailbox_AfterSelect(object sender, TreeViewEventArgs e) { // Get new OutlookServiceClient. client = await Util.GetOutlookServiceClient(pca, currentUser); if (client == null) { MessageBox.Show("Acquiring access token failed.", "Office365APIEditor", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 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. FolderInfo info = (FolderInfo)treeView_Mailbox.SelectedNode.Tag; switch (info.Type) { case FolderContentType.Message: case FolderContentType.MsgFolderRoot: GetMessageFolderProps(info.ID, treeView_Mailbox.SelectedNode.Text); break; case FolderContentType.Contact: GetContactFolderProps(info.ID, treeView_Mailbox.SelectedNode.Text); break; case FolderContentType.Calendar: GetCalendarFolderProps(info.ID, treeView_Mailbox.SelectedNode.Text); break; default: break; } }
private async void AttachmentViewerForm_Load(object sender, EventArgs e) { Text = "Attachments for '" + targetItemSubject + "'"; client = await Util.GetOutlookServiceClient(pca, currentUser); if (client == null) { MessageBox.Show("Authentication failure.", "Office365APIEditor"); } switch (targetFolder.Type) { case FolderContentType.Message: try { var results = await client.Me.Messages[targetItemId].Attachments .OrderBy(a => a.Name) .Take(50) .Select(a => new { a.Id, a.Name, a.ContentType }) .ExecuteAsync(); if (results.CurrentPage.Count == 0) { // No attachments for this item. return; } bool morePages = false; do { foreach (var attachment in results.CurrentPage) { // Add new row. string name = attachment.Name; string id = attachment.Id; string contentType = attachment.ContentType; DataGridViewRow itemRow = new DataGridViewRow(); itemRow.Tag = attachment.Id; itemRow.CreateCells(dataGridView_AttachmentList, new object[] { name, id, contentType }); // itemRow.ContextMenuStrip = contextMenuStrip_AttachmentList; if (dataGridView_AttachmentList.InvokeRequired) { dataGridView_AttachmentList.Invoke(new MethodInvoker(delegate { dataGridView_AttachmentList.Rows.Add(itemRow); })); } else { dataGridView_AttachmentList.Rows.Add(itemRow); } } if (results.MorePagesAvailable) { morePages = true; results = await results.GetNextPageAsync(); } else { morePages = false; } } while (morePages); } catch (Exception ex) { MessageBox.Show(ex.Message); } break; case FolderContentType.Contact: break; case FolderContentType.Calendar: break; case FolderContentType.DummyCalendarRoot: break; default: break; } }
private async void FolderViewerForm_Load(object sender, System.EventArgs e) { if (targetFolder.Type != FolderContentType.MsgFolderRoot) { Text = targetFolder.Type.ToString() + " items in " + targetFolderDisplayName; } else { Text = FolderContentType.Message.ToString() + " items in " + targetFolderDisplayName; } client = await Util.GetOutlookServiceClient(pca, currentUser); if (client == null) { MessageBox.Show("Authentication failure.", "Office365APIEditor"); } switch (targetFolder.Type) { case FolderContentType.Message: // Add columns. PrepareMessageItemListColumns(); // Get items. if (await GetMessageItems() == false) { if (MessageBox.Show("TotalItemCount of this folder is not 0 but getting items of this folder was failed.\r\nDo you want to retry getting items as Contact item?", "Office365APIEditor", MessageBoxButtons.YesNo) == DialogResult.Yes) { // Retry as Contact item. targetFolder.Type = FolderContentType.Contact; // Reset DataGrid. if (dataGridView_ItemList.InvokeRequired) { dataGridView_ItemList.Invoke(new MethodInvoker(delegate { for (int i = dataGridView_ItemList.Columns.Count - 1; i >= 0; i--) { dataGridView_ItemList.Columns.RemoveAt(i); } })); } else { for (int i = dataGridView_ItemList.Columns.Count - 1; i >= 0; i--) { dataGridView_ItemList.Columns.RemoveAt(i); } } PrepareContactItemListColumns(); GetContactItems(); } } break; case FolderContentType.Contact: // Add columns. PrepareContactItemListColumns(); // Get items. GetContactItems(); break; case FolderContentType.Calendar: // Add columns. PrepareCalendarItemListColumns(); GetCalendarItems(); break; case FolderContentType.MsgFolderRoot: // Add columns. PrepareMessageItemListColumns(); // Get items. GetMessageItemsInMsgFolderRoot(); break; case FolderContentType.DummyCalendarRoot: default: break; } }