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))); }
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()); }
public async Task <ActionResult> Index(int page = 1, int?providerId = null, NewsItemOrder order = NewsItemOrder.None) { return(View(await dbOperations.GetIndexModel(PageSize, page, providerId, order))); }
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, }); }