/// <summary> /// Load viewbags /// </summary> /// <param name="filter">filter model</param> private void LoadViewBags(MessageFilterViewModel filter = null) { var client = AutofactHelper.GetClient <IIMAPClient>(); ViewBag.Mailboxes = client.GetBoxes(); if (filter != null) { ViewBag.Mailbox = filter.Mailbox; ViewBag.Filter = filter; } }
/// <summary> /// Home page /// </summary> /// <param name="mailbox"></param> /// <returns></returns> public ActionResult Index(string mailbox = IMAPConfig.DEFAULT_MAIL_BOX) { var filter = new MessageFilterViewModel { Mailbox = mailbox }; var model = DoFilter(filter); LoadViewBags(filter); return(View(model)); }
public ActionResult Index(MessageFilterViewModel filter) { if (ModelState.IsValid) { var model = DoFilter(filter); LoadViewBags(filter); return(View(model)); } return(RedirectToAction("Index")); }
/// <summary> /// filter by filter model /// </summary> /// <param name="filter"></param> /// <returns></returns> private MessageListViewModel DoFilter(MessageFilterViewModel filter) { var client = AutofactHelper.GetClient <IIMAPClient>(); var model = new MessageListViewModel { Items = client.GetMails(filter.Mailbox, filter.LastDate, filter.Keyword).Select(s => new MessageViewModel { UId = s.UId, Date = s.Mail.Date().ToEmailDate(), Readed = s.IsSeen, From = s.Mail.From.DisplayName, Subject = String.IsNullOrWhiteSpace(s.Mail.Subject) ? IMAPConfig.NO_SUBJECT_TEXT : s.Mail.Subject }), Filter = filter }; Logger.InfoFormat("Filter {0} messages", model.Items.Count()); return(model); }