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)); }
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)); }
public EnumerateMessagesParams(int highFetchValue, int lowFetchValue, FetchMessagesFlags inputFetchFlags = FetchMessagesFlags.None) { this.FetchMessagesFlags = (FetchMessagesFlags.FetchBySeqNum | inputFetchFlags); this.HighFetchValue = highFetchValue; this.LowFetchValue = lowFetchValue; }
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); }