Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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;
            }
        }