Esempio n. 1
0
        private List <Message> ShowSpecificMessages(MaildbContext context, AdvancedSearchQuery query)
        {
            List <Message> message = new List <Message>();

            if (query.MailFrom != null)
            {
                message.AddRange(context.Messages.Where(c => c.MailFrom.Contains(query.MailFrom)));
            }
            if (query.MailTo != null)
            {
                message.AddRange(context.Messages.Where(c => c.MailTo.Contains(query.MailTo)));
            }
            if (query.MailTitle != null)
            {
                message.AddRange(context.Messages.Where(c => c.MailTitle.Contains(query.MailTitle)));
            }
            if (query.MailHasWords != null)
            {
                message = HasWords(message, context, query.MailHasWords);
            }
            if (query.MailDoesntHave != null)
            {
                if (query.MailFrom == null && query.MailTo == null && query.MailTitle == null && query.MailHasWords == null)
                {
                    message = context.Messages.ToList();
                    message = DoesntHave(message, context, query.MailDoesntHave);
                }
                else
                {
                    message = DoesntHave(message, context, query.MailDoesntHave);
                }
            }

            return(Encoding(message));
        }
Esempio n. 2
0
 private AdvancedSearchQuery SetQueryNull(AdvancedSearchQuery query)
 {
     if (query.MailTo == null && query.MailFrom == null && query.MailTitle == null && query.MailHasWords == null && query.MailDoesntHave == null)
     {
         query = null;
     }
     return(query);
 }
Esempio n. 3
0
        public List <Message> FindMessages(AdvancedSearchQuery query, MaildbContext context)
        {
            query = SetQueryNull(query);
            List <Message> _messages = null;

            if (query != null)
            {
                _messages = ShowSpecificMessages(context, query);
            }
            else
            {
                _messages = ShowAllMessages(context);
            }

            return(_messages.OrderByDescending(m => m.MailDate).Distinct().ToList());
        }
Esempio n. 4
0
        public PartialViewResult AdvSearch(AdvancedSearchQuery query)
        {
            IEnumerable <Message> messages = _advSearch.FindMessages(query, _context);

            return(PartialView("_Box", messages));
        }