Beispiel #1
0
        public IPagedList <Notification> Search(NotificationSearchQuery searchQuery)
        {
            IQueryOver <Notification, Notification> queryOver = _session.QueryOver <Notification>();

            if (!string.IsNullOrWhiteSpace(searchQuery.Message))
            {
                queryOver =
                    queryOver.Where(
                        notification => notification.Message.IsInsensitiveLike(searchQuery.Message, MatchMode.Anywhere));
            }
            if (searchQuery.UserId.HasValue)
            {
                queryOver = queryOver.Where(notification => notification.User.Id == searchQuery.UserId);
            }
            if (searchQuery.From.HasValue)
            {
                queryOver = queryOver.Where(notification => notification.CreatedOn >= searchQuery.From);
            }
            if (searchQuery.To.HasValue)
            {
                queryOver = queryOver.Where(notification => notification.CreatedOn <= searchQuery.To);
            }
            if (searchQuery.NotificationType.HasValue)
            {
                queryOver =
                    queryOver.Where(notification => notification.NotificationType == searchQuery.NotificationType);
            }

            return(queryOver.OrderBy(notification => notification.CreatedOn).Desc.Paged(searchQuery.Page));
        }
 public ViewResult Index(NotificationSearchQuery searchQuery)
 {
     ViewData["results"] = _service.Search(searchQuery);
     ViewData["notification-type-options"] = _service.GetNotificationTypeOptions(true);
     return(View(searchQuery));
 }