private async Task <List <MailSummary> > executeLoadMore() { try { folder.Open(FolderAccess.ReadOnly); int lowBound, highBound; highBound = folder.Count - 20 * current_page - 1; lowBound = highBound - 19; if (lowBound <= 0) { lowBound = 0; } List <MailSummary> temp = new List <MailSummary>(); var summarys = await folder.FetchAsync(lowBound, highBound, MessageSummaryItems.Full | MessageSummaryItems.UniqueId); for (int i = summarys.Count - 1; i >= 0; i--) { temp.Add(new MailSummary(summarys[i].Index, summarys[i].NormalizedSubject, summarys[i].Date, summarys[i].Envelope.Sender)); } return(temp); } catch { return(null); } }
public async Task <long> ReadMails() { Stopwatch stopWhatch = new Stopwatch(); stopWhatch.Start(); try { var mailsTask = serverFolder.FetchAsync(0, -1, SummaryItems); foreach (var message in await mailsTask) { if (Messages.Count(x => x.serverMessage.UniqueId == message.UniqueId) == 0) { Messages.Add(new MailMessage(message, serverFolder)); } } } catch (Exception ex) { return(0); } stopWhatch.Stop(); return(stopWhatch.ElapsedMilliseconds); }
private async void LoadMessages() { if (lFolder.Count > 0) { var summaries = await lFolder.FetchAsync(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId); incarcaOptiuneaSelectata(summaries, lFolder); } }
async Task LoadMessagesAsync(Task task) { await task; messages.Clear(); Nodes.Clear(); map.Clear(); if (!folder.IsOpen) { await folder.OpenAsync(FolderAccess.ReadOnly); } if (folder.Count > 0) { var summaries = await folder.FetchAsync(0, -1, request); AddMessageSummaries(summaries); } folder.CountChanged += CountChanged; }
async void LoadMessages() { messages.Clear(); Nodes.Clear(); map.Clear(); if (folder.Count > 0) { var summaries = await folder.FetchAsync(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId); AddMessageSummaries(summaries); } folder.MessagesArrived += MessagesArrived_TaskThread; }
private async Task searchMessages(IMailFolder inbox) { //Create a list to store messages that match the search criteria. List <MimeMessage> matchingMessages = new List <MimeMessage>(); foreach (var summary in await inbox.FetchAsync(0, -1, MessageSummaryItems.Full | MessageSummaryItems.UniqueId)) { foreach (var term in _subjectSearchTerms) { if (summary.Envelope.Subject != null) { if (summary.Envelope.Subject.ToLower().Contains(term.ToLower())) { var message = await inbox.GetMessageAsync(summary.UniqueId); matchingMessages.Add(message); } } } foreach (var term in _bodySearchTerms) { if (summary.TextBody != null) { if (summary.TextBody.ToString().ToLower().Contains(term.ToLower())) { var message = await inbox.GetMessageAsync(summary.UniqueId); matchingMessages.Add(message); } } } } await sendToDatabase(matchingMessages); }
private int mailsOnPage = 15; //number of mails on page for one AJAX public async Task <ActionResult> MailList(int page = 0) { IMailFolder folder = (IMailFolder)Session["folder"]; List <IMessageSummary> fetch = (List <IMessageSummary>)Session["messages"]; if (page == 0) { folder.Open(FolderAccess.ReadWrite); fetch = new List <IMessageSummary>(await folder.FetchAsync(0, -1, MessageSummaryItems.UniqueId | MessageSummaryItems.Flags)); fetch.Reverse(); Session["messages"] = fetch; } int start = page * mailsOnPage; int end = ((fetch.Count - mailsOnPage) > start) ? start + mailsOnPage - 1 : fetch.Count - 1; List <Mail> mails = new List <Mail>(); for (int i = start; i <= end; i++) { var headers = folder.GetHeaders(fetch[i].UniqueId); await Task.Run(() => mails.Add(new Mail(fetch[i], headers))); } return(PartialView(mails)); }