コード例 #1
0
        public PagedResultDto <NotificationDto> GetAll(NotificationPaginableInput input)
        {
            var all = _repository.GetAllIncluding(a => a.SendNotificationsStatuses);

            var filtered = GetFilteredQuery(all, input);

            var ordered = GetOrderedQuery(filtered, input);

            var paged = ordered.Skip(input.offset).Take(input.limit).ToList();

            return(new PagedResultDto <NotificationDto>(filtered.Count(), paged.Select(a => a.MapTo <NotificationDto>()).ToList()));
        }
コード例 #2
0
        public IQueryable <PhoneNotification> GetOrderedQuery(IQueryable <PhoneNotification> all, NotificationPaginableInput input)
        {
            switch (input.sort)
            {
            case "title":
                return(input.order == "desc" ? all.OrderByDescending(a => a.Title) : all.OrderBy(a => a.Title));

            default:
                return(input.order == "desc" ? all.OrderByDescending(a => a.CreationTime) : all.OrderBy(a => a.CreationTime));
            }
        }
コード例 #3
0
 public IQueryable <PhoneNotification> GetFilteredQuery(IQueryable <PhoneNotification> all, NotificationPaginableInput input)
 {
     all = all.WhereIf(!string.IsNullOrEmpty(input.search), a => a.Title.Contains(input.search));
     return(all);
 }