in Office365APIEditor/UI/MailboxViewerForm.cs [504:580]
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.MicrosoftGraphBaseObject 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.Task:
outlookFolder = await viewerRequestHelper.GetToDoTaskListAsync(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;
}
}