Пример #1
0
 public async Task <PartialViewResult> Table(int page = 1, int?providerId = null, NewsItemOrder order = NewsItemOrder.None)
 {
     return(PartialView("_Table", await dbOperations.GetIndexModel(PageSize, page, providerId, order)));
 }
Пример #2
0
        public async Task <List <NewsItemModel> > GetNewsItems(int?providerId, int skip, int take, NewsItemOrder order)
        {
            var query = db.FeedItems.AsQueryable();

            switch (order)
            {
            case NewsItemOrder.TitleDesc:
                query = query.OrderByDescending(x => x.Title);
                break;

            case NewsItemOrder.TitleAsc:
                query = query.OrderBy(x => x.Title);
                break;

            case NewsItemOrder.BodyDesc:
                query = query.OrderByDescending(x => x.Body);
                break;

            case NewsItemOrder.BodyAsc:
                query = query.OrderBy(x => x.Body);
                break;

            case NewsItemOrder.DateDesc:
                query = query.OrderByDescending(x => x.PublishDate);
                break;

            case NewsItemOrder.DateAsc:
                query = query.OrderBy(x => x.PublishDate);
                break;

            case NewsItemOrder.ProviderDesc:
                query = query.OrderByDescending(x => x.FeedProvider.Title);
                break;

            case NewsItemOrder.ProviderAsc:
                query = query.OrderBy(x => x.FeedProvider.Title);
                break;

            default:
                query = query.OrderBy(x => x.Title);
                break;
            }

            if (providerId > 0)
            {
                query = query.Where(x => x.FeedProvider_Id == providerId);
            }
            if (skip > 0)
            {
                query = query.Skip(skip);
            }
            if (take > 0)
            {
                query = query.Take(take);
            }

            return(await query.Select(x => new NewsItemModel
            {
                Title = x.Title,
                Body = x.Body,
                PubDate = x.PublishDate,
                Provider = x.FeedProvider.Title,
            }).ToListAsync());
        }
Пример #3
0
 public async Task <ActionResult> Index(int page = 1, int?providerId = null, NewsItemOrder order = NewsItemOrder.None)
 {
     return(View(await dbOperations.GetIndexModel(PageSize, page, providerId, order)));
 }
Пример #4
0
 public async Task <IndexModel> GetIndexModel(int pageSize, int page, int?providerId, NewsItemOrder order)
 {
     return(new IndexModel
     {
         Items = await GetNewsItems(providerId, (page - 1) *pageSize, pageSize, order),
         Providers = await GetProviders(),
         Order = order,
         CurrentPage = page,
         PageSize = pageSize,
         TotalPages = await NewsCount(providerId) / pageSize,
         ProviderId = providerId,
     });
 }