Пример #1
0
        public ActionResult Details(uint id, string mailbox = IMAPConfig.DEFAULT_MAIL_BOX)
        {
            var client = AutofactHelper.GetClient <IIMAPClient>();

            //set a read status
            client.Read(id, mailbox);

            Logger.InfoFormat("Readed #{0} message from {1}", id, mailbox);

            var message = client.GetMail(id, mailbox);
            var model   = new MessageViewModel
            {
                UId     = message.UId,
                Date    = message.Mail.Date().ToEmailDate(),
                Readed  = message.IsSeen,
                From    = message.Mail.From.ToString(),
                Subject = String.IsNullOrWhiteSpace(message.Mail.Subject) ? IMAPConfig.NO_SUBJECT_TEXT : message.Mail.Subject,
                Body    = message.Mail.Body
            };

            LoadViewBags();

            ViewBag.Mailbox = mailbox;

            return(View(model));
        }
Пример #2
0
        public ActionResult Delete(uint id, string mailbox = IMAPConfig.DEFAULT_MAIL_BOX)
        {
            var client = AutofactHelper.GetClient <IIMAPClient>();

            if (client.Delete(id, mailbox))
            {
                TempData[Settings.KEYS.TMP_SUCCESS_KEY] = "Deleted successfully message";

                Logger.InfoFormat("Deleted #{0} message from {1}", id, mailbox);

                return(RedirectToAction("Index"));
            }

            return(View("Error"));
        }
Пример #3
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);
        }
Пример #4
0
        public ActionResult Compose(MessageViewModel model)
        {
            if (ModelState.IsValid)
            {
                var client = AutofactHelper.GetClient <ISMTPClient>();

                if (client.SendMessage(model.Subject, model.Body, model.To))
                {
                    TempData[Settings.KEYS.TMP_SUCCESS_KEY] = "Sended successfully message";

                    Logger.InfoFormat("Sended message to {1}", model.Body);

                    return(RedirectToAction("Index"));
                }

                ModelState.AddModelError("", "Failed");
            }

            LoadViewBags();

            return(View(model));
        }