コード例 #1
0
        private async void GetMessageFolderProps(string FolderId, string FolderDisplayName)
        {
            // Get the folder.
            IMailFolder mailFolderResult = new MailFolder();

            try
            {
                mailFolderResult = await viewerHelper.GetMailFolderAsync(FolderId, FolderDisplayName);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Office365APIEditor");
                return;
            }

            // Add columns.
            dataGridView_FolderProps.Columns.Add("Property", "Property");
            dataGridView_FolderProps.Columns.Add("Value", "Value");
            dataGridView_FolderProps.Columns.Add("Type", "Type");

            // Add rows.

            DataGridViewRow propChildFolderCount = new DataGridViewRow();

            propChildFolderCount.CreateCells(dataGridView_FolderProps, new object[] { "ChildFolderCount", mailFolderResult.ChildFolderCount.Value, mailFolderResult.ChildFolderCount.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propChildFolderCount);

            DataGridViewRow propDisplayName = new DataGridViewRow();

            propDisplayName.CreateCells(dataGridView_FolderProps, new object[] { "DisplayName", mailFolderResult.DisplayName, mailFolderResult.DisplayName.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propDisplayName);

            DataGridViewRow propId = new DataGridViewRow();

            propId.CreateCells(dataGridView_FolderProps, new object[] { "Id", mailFolderResult.Id, mailFolderResult.Id.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propId);

            DataGridViewRow propParentFolderId = new DataGridViewRow();

            propParentFolderId.CreateCells(dataGridView_FolderProps, new object[] { "ParentFolderId", mailFolderResult.ParentFolderId, mailFolderResult.ParentFolderId.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propParentFolderId);

            DataGridViewRow propTotalItemCount = new DataGridViewRow();

            propTotalItemCount.CreateCells(dataGridView_FolderProps, new object[] { "TotalItemCount", mailFolderResult.TotalItemCount, mailFolderResult.TotalItemCount.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propTotalItemCount);

            DataGridViewRow propUnreadItemCount = new DataGridViewRow();

            propUnreadItemCount.CreateCells(dataGridView_FolderProps, new object[] { "UnreadItemCount", mailFolderResult.UnreadItemCount, mailFolderResult.UnreadItemCount.GetType().ToString() });
            dataGridView_FolderProps.Rows.Add(propUnreadItemCount);
        }
コード例 #2
0
        private async void FolderViewerForm_Load(object sender, System.EventArgs e)
        {
            toolStripStatusLabel_Status.Text = "Loading all items...";

            string typeForWindowTitle = "";

            switch (targetFolder.Type)
            {
            case FolderContentType.Message:
            case FolderContentType.MsgFolderRoot:
            case FolderContentType.Drafts:
                typeForWindowTitle = "Message items";
                break;

            case FolderContentType.Contact:
                typeForWindowTitle = "Contact items";
                break;

            case FolderContentType.Calendar:
                typeForWindowTitle = "Calendar items";
                break;

            case FolderContentType.Task:
                typeForWindowTitle = "Task items";
                break;

            default:
                typeForWindowTitle = "items";
                break;
            }

            Text = typeForWindowTitle + " in " + targetFolderDisplayName;

            viewerHelper = new ViewerHelper.ViewerHelper(pca, currentUser);

            switch (targetFolder.Type)
            {
            case FolderContentType.Message:
                // Add columns.
                PrepareMessageItemListColumns();

                // Get items.
                List <MessageSummary> messages = await viewerHelper.GetMessageSummaryAsync(targetFolder.ID);

                if (messages.Count != 0)
                {
                    ShowMessages(messages);
                }
                else
                {
                    var mailFolder = await viewerHelper.GetMailFolderAsync(targetFolder.ID, targetFolderDisplayName);

                    if (mailFolder.TotalItemCount != 0 && 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;

                        Text = FolderContentType.Contact.ToString() + " items in " + targetFolderDisplayName;

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

                        // Add columns.
                        PrepareContactItemListColumns();

                        // Get items.
                        List <ContactSummary> contactsInMailFolder = await viewerHelper.GetContactSummaryAsync(targetFolder.ID);

                        ShowContacts(contactsInMailFolder);
                    }
                }

                break;

            case FolderContentType.Contact:
                // Add columns.
                PrepareContactItemListColumns();

                // Get items.
                List <ContactSummary> contacts = await viewerHelper.GetContactSummaryAsync(targetFolder.ID);

                ShowContacts(contacts);

                break;

            case FolderContentType.Calendar:
                // Add columns.
                PrepareCalendarItemListColumns();

                // Get items.
                List <EventSummary> events = await viewerHelper.GetEventSummaryAsync(targetFolder.ID);

                ShowEvents(events);

                break;

            case FolderContentType.MsgFolderRoot:
            case FolderContentType.Drafts:
                // Add columns.
                PrepareMessageItemListColumns();

                // Get items.
                List <MessageSummary> messagesInMsgFolderRoot = await viewerHelper.GetMessageSummaryAsync(targetFolder.ID);

                if (messagesInMsgFolderRoot.Count != 0)
                {
                    ShowMessages(messagesInMsgFolderRoot);
                }

                break;

            case FolderContentType.Task:
                // Add Columns.
                PrepareTaskItemListColumns();

                // Get items.
                List <TaskSummary> tasks = await viewerHelper.GetTaskSummaryAsync(targetFolder.ID);

                if (tasks.Count != 0)
                {
                    ShowTasks(tasks);
                }

                break;

            case FolderContentType.DummyCalendarRoot:
            case FolderContentType.DummyTaskGroupRoot:
            case FolderContentType.TaskGroup:
            default:
                break;
            }

            toolStripStatusLabel_Status.Text = "Loaded all items.";
        }