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