Пример #1
0
        // TODO: Full delete items already in Trash or Spam?
        public virtual async Task TrashAsync(List <MailMessage> messages, bool isSpam)
        {
            string labelName = isSpam ? "[Gmail]/Spam" : "[Gmail]/Trash";

            foreach (var message in messages)
            {
                // TODO: Remove from all label lists?  Add to trash label list if sync'd?
                message.AddLabel(labelName);
                if (MailStorage.HasMessageLables(message.GetThreadId(), message.GetMessageId()))
                {
                    // Update on disk
                    await MailStorage.StoreMessageLabelsAsync(message);
                }
            }

            // TODO: Queue command to send change to the server
            await GmailImap.AddLabelAsync(messages, labelName);
        }
Пример #2
0
        // It's assumed that labelName is never the active label.
        public virtual async Task AddLabelAsync(List <MailMessage> messages, string labelName)
        {
            foreach (var message in messages)
            {
                // Store in memory
                message.AddLabel(labelName);
                if (MailStorage.HasMessageLables(message.GetThreadId(), message.GetMessageId()))
                {
                    // Update on disk
                    await MailStorage.StoreMessageLabelsAsync(message);
                }

                // TODO: Store in the message list for that label
            }

            // TODO: Queue command to send change to the server
            await GmailImap.AddLabelAsync(messages, labelName);
        }