Exemplo n.º 1
0
        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;
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 5
0
        public FolderViewerForm(PublicClientApplication PCA, string UserEmailAddress, FolderInfo TargetFolderInfo, string TargetFolderDisplayName)
        {
            InitializeComponent();

            pca                     = PCA;
            email                   = UserEmailAddress;
            targetFolder            = TargetFolderInfo;
            targetFolderDisplayName = TargetFolderDisplayName;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        public AttachmentViewerForm(PublicClientApplication PCA, string UserEmailAddress, FolderInfo TargetFolderInfo, string TargetItemID, string TargetItemSubject)
        {
            InitializeComponent();

            pca               = PCA;
            email             = UserEmailAddress;
            targetFolder      = TargetFolderInfo;
            targetItemId      = TargetItemID;
            targetItemSubject = TargetItemSubject;
        }