コード例 #1
0
        protected List <MessageRec> EnumerateMessages(FetchMessagesFlags flags, int?highFetchValue = null, int?lowFetchValue = null)
        {
            if (!this.Folder.IsSelectable)
            {
                return(new List <MessageRec>(0));
            }
            List <ImapMessageRec> imapMessageRecs = this.Folder.EnumerateMessages(this.Mailbox.ImapConnection, flags, highFetchValue, lowFetchValue);

            return(this.GetMessageRecs(imapMessageRecs));
        }
コード例 #2
0
        private IEnumerable <ImapMessageRec> GetImapMessageRecsFromResultData(ImapResultData resultData, FetchMessagesFlags fetchFlags)
        {
            IList <string>        messageUids  = resultData.MessageUids;
            IList <ImapMailFlags> messageFlags = resultData.MessageFlags;
            bool flag = messageUids != null && messageUids.Count > 0 && messageFlags != null && messageFlags.Count > 0;

            if (!flag)
            {
                return(new List <ImapMessageRec>(0));
            }
            if (fetchFlags.HasFlag(FetchMessagesFlags.IncludeExtendedData))
            {
                return(ImapExtendedMessageRec.FromImapResultData(this.folder, resultData));
            }
            return(ImapMessageRec.FromImapResultData(resultData));
        }
コード例 #3
0
 public EnumerateMessagesParams(int highFetchValue, int lowFetchValue, FetchMessagesFlags inputFetchFlags = FetchMessagesFlags.None)
 {
     this.FetchMessagesFlags = (FetchMessagesFlags.FetchBySeqNum | inputFetchFlags);
     this.HighFetchValue     = highFetchValue;
     this.LowFetchValue      = lowFetchValue;
 }
コード例 #4
0
        public List <ImapMessageRec> EnumerateMessages(ImapConnection imapConnection, FetchMessagesFlags flags, int?highFetchValue = null, int?lowFetchValue = null)
        {
            ImapMailbox imapMailbox      = imapConnection.SelectImapMailbox(this.folder);
            int?        numberOfMessages = imapMailbox.NumberOfMessages;

            if (numberOfMessages == null || numberOfMessages.Value == 0)
            {
                MrsTracer.Provider.Debug("Imap folder {0} does not have any messages to be enumerated", new object[]
                {
                    this.Name
                });
                return(new List <ImapMessageRec>(0));
            }
            int highFetchValue2 = highFetchValue ?? numberOfMessages.Value;
            int lowFetchValue2  = lowFetchValue ?? 1;
            EnumerateMessagesParams      enumerateParams = new EnumerateMessagesParams(highFetchValue2, lowFetchValue2, flags);
            IEnumerable <ImapMessageRec> collection      = this.EnumerateMessagesInfoFromImapServer(imapConnection, enumerateParams);
            List <ImapMessageRec>        list            = new List <ImapMessageRec>(collection);

            list.Sort();
            return(list);
        }