/// <summary> /// Occurs when a mail client message delete attempt succeeds. /// </summary> /// <param name="sender">The object that raised the event (MailClient).</param> /// <param name="e">The event data (MessageEventArgs).</param> private async void mailClient_DeletedMessage(object sender, DeleteMessageEventArgs e) { // Get the mail client MailClient mailClient = (MailClient)sender; try { // Get the mail header MailHeader mailHeader = StorageSettings.MailHeaderDictionary[mailClient.AccountSettingsData.EmailAddress][e.Mailbox.FullName].Where(o => o.Uid == e.MessagePaths.Keys.First()).FirstOrDefault(); // If the mail header is found if (mailHeader != null) { // Remove message from mail header int mailHeaderIndex = StorageSettings.MailHeaderDictionary[mailClient.AccountSettingsData.EmailAddress][e.Mailbox.FullName].IndexOf(mailHeader); StorageSettings.MailHeaderDictionary[mailClient.AccountSettingsData.EmailAddress][e.Mailbox.FullName].Remove(mailHeader); } // Save await StorageSettings.SaveMailHeaderDictionary(); } catch (Exception ex) { LogFile.Instance.LogError(mailClient.AccountSettingsData.EmailAddress, e.Mailbox.FullName, ex.ToString()); } }
/// <summary> /// Initialises a new instance of the Skycap.Net.Common.Tasks.DeleteMessageQueuedTask class. /// </summary> /// <param name="uid">The unique id of the message.</param> public DeleteMessagePrioritisedQueuedTask(DeleteMessageEventArgs deleteMessages) : base(PrioritisedQueuedTaskType.DeleteMessage, deleteMessages.Mailbox) { // Initialise local variables DeleteMessage = deleteMessages; }