예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="folder"></param>
        /// <param name="delete"></param>
        internal static void MoveFolderContents(Outlook.Folder folder, bool delete)
        {
            if (folder == null)
            {
                return;
            }
            using var form = new ProjectSelectFormHost();
            var result = form.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }

            var sharedFolder = GetSharedFolder(form.SelectedFolders[0]);

            if (sharedFolder == null)
            {
                throw new ArgumentNullException(nameof(sharedFolder), @"No shared folder.");
            }
            foreach (var item in folder.Items)
            {
                if (item is Outlook.MailItem mail)
                {
                    mail.Move(sharedFolder);
                }
            }

            if (delete)
            {
                folder.Delete();
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="selection"></param>
        internal static void MoveMail(Outlook.Selection selection)
        {
            if (selection == null || selection.Count < 1)
            {
                return;
            }

            using var form = new ProjectSelectFormHost();
            var result = form.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }

            var folder = GetSharedFolder(form.SelectedFolders[0]);

            if (folder == null)
            {
                throw new ArgumentNullException(nameof(folder), @"No shared folder.");
            }

            var duplicates = new List <string>();

            foreach (var item in selection)
            {
                if (item is Outlook.MailItem mail)
                {
                    if (IsDuplicateInFolder(folder, mail))
                    {
                        duplicates.Add(mail.Subject);
                        continue;
                    }

                    mail.Move(folder);
                    //TODO: Log analytics
                }
            }

            if (!duplicates.Any())
            {
                return;
            }

            var stringBuilder = new StringBuilder();

            stringBuilder.Append("The following items where already present in the folder: \n");
            foreach (var item in duplicates)
            {
                stringBuilder.AppendLine($"\n{item}");
            }

            MessageBox.Show(stringBuilder.ToString(), @"Mail Assistant", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        internal static void NewFolder()
        {
            using var form = new ProjectSelectFormHost();
            var result = form.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }

            var _ = GetSharedFolder(form.SelectedFolders[0]);
        }