コード例 #1
0
        /// <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());
            }
        }
コード例 #2
0
 /// <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;
 }