public IPagedList <QueuedMessage> GetMessages(MessageQueueQuery searchQuery) { IQueryOver <QueuedMessage, QueuedMessage> queryOver = _session.QueryOver <QueuedMessage>().Where(message => message.Site == _site); if (searchQuery.From.HasValue) { queryOver = queryOver.Where(message => message.CreatedOn >= searchQuery.From); } if (searchQuery.To.HasValue) { queryOver = queryOver.Where(message => message.CreatedOn <= searchQuery.To); } if (!string.IsNullOrWhiteSpace(searchQuery.FromQuery)) { queryOver = queryOver.Where(message => message.FromAddress.IsInsensitiveLike(searchQuery.FromQuery, MatchMode.Anywhere) || message.FromName.IsInsensitiveLike(searchQuery.FromQuery, MatchMode.Anywhere)); } if (!string.IsNullOrWhiteSpace(searchQuery.ToQuery)) { queryOver = queryOver.Where(message => message.ToAddress.IsInsensitiveLike(searchQuery.ToQuery, MatchMode.Anywhere) || message.ToName.IsInsensitiveLike(searchQuery.ToQuery, MatchMode.Anywhere)); } if (!string.IsNullOrWhiteSpace(searchQuery.Subject)) { queryOver = queryOver.Where(message => message.Subject.IsInsensitiveLike(searchQuery.Subject, MatchMode.Anywhere)); } return(queryOver.OrderBy(message => message.CreatedOn).Desc.Paged(searchQuery.Page, _siteSettings.DefaultPageSize)); }
public ViewResult Index(MessageQueueQuery searchQuery) { ViewData["data"] = _messageQueueAdminService.GetMessages(searchQuery); return(View(searchQuery)); }