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)); }
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); }
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()); }
public PartialViewResult AdvSearch(AdvancedSearchQuery query) { IEnumerable <Message> messages = _advSearch.FindMessages(query, _context); return(PartialView("_Box", messages)); }