Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
        public ActionResult Index(MessageFilterViewModel filter)
        {
            if (ModelState.IsValid)
            {
                var model = DoFilter(filter);

                LoadViewBags(filter);

                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 4
0
        /// <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);
        }