Esempio n. 1
0
        List <MessageRec> IFolder.LookupMessages(PropTag ptagToLookup, List <byte[]> keysToLookup, PropTag[] additionalPtagsToLoad)
        {
            List <string> list = new List <string>(keysToLookup.Count);

            foreach (byte[] messageEntryId in keysToLookup)
            {
                list.Add(PopEntryId.ParseUid(messageEntryId));
            }
            return(this.EnumerateMessagesOnPopConnection(list));
        }
Esempio n. 2
0
        private void EnumerateIncrementalChanges(PopFolderState currentState, PopFolderState lastSyncedState, FolderChangesManifest changes, IEnumerable <MessageRec> messages)
        {
            Dictionary <string, MessageRec> dictionary = new Dictionary <string, MessageRec>();

            foreach (MessageRec messageRec in messages)
            {
                string key = PopEntryId.ParseUid(messageRec.EntryId);
                dictionary.Add(key, messageRec);
            }
            this.EnumerateNewMessages(currentState, lastSyncedState, changes, dictionary);
            this.EnumerateMessageDeletes(currentState, lastSyncedState, changes, dictionary);
        }
Esempio n. 3
0
        Stream ISupportMime.GetMimeStream(MessageRec message, out PropValueData[] extraPropValues)
        {
            extraPropValues = null;
            string     messageUid = PopEntryId.ParseUid(message.EntryId);
            Stream     result;
            ExDateTime?exDateTime;

            this.FetchMessage(messageUid, out result, out exDateTime);
            if (exDateTime != null)
            {
                extraPropValues = new PropValueData[]
                {
                    new PropValueData(PropTag.MessageDeliveryTime, exDateTime.Value.ToUtc())
                };
            }
            return(result);
        }
Esempio n. 4
0
        List <MessageRec> ISourceFolder.EnumerateMessagesPaged(int maxPageSize)
        {
            SyncContentsManifestState syncContentsManifestState = base.Mailbox.SyncState[base.FolderId];
            PopFolderState            popFolderState            = (syncContentsManifestState.Data != null) ? PopFolderState.Deserialize(syncContentsManifestState.Data) : PopFolderState.CreateNew();

            foreach (string item in this.crawlerCopiedMessages.Values)
            {
                popFolderState.MessageList.Add(item);
                this.crawlerCopiedMessages.Remove(item);
            }
            syncContentsManifestState.Data = popFolderState.Serialize();
            List <MessageRec> list  = base.EnumerateMessagesOnPopConnection(0);
            List <MessageRec> list2 = new List <MessageRec>();

            foreach (MessageRec messageRec in list)
            {
                string item2 = PopEntryId.ParseUid(messageRec.EntryId);
                if (!popFolderState.MessageList.Contains(item2))
                {
                    list2.Add(messageRec);
                    if (list2.Count == maxPageSize)
                    {
                        break;
                    }
                }
            }
            if (list2.Count == 0)
            {
                return(null);
            }
            foreach (MessageRec messageRec2 in list2)
            {
                string item3 = PopEntryId.ParseUid(messageRec2.EntryId);
                this.crawlerCopiedMessages.Add(item3);
            }
            return(list2);
        }