public async Task <IActionResult> GetNews([FromQuery] NewsParamsDto newsParams) { var newsFromRepo = await _dbContext.News.Include(a => a.Author) .Include(p => p.Photo).OrderByDescending(x => x.AddedAt).ToListAsync(); if (newsParams.Section != "all") { newsFromRepo = newsFromRepo.Where(s => s.Section == newsParams.Section).ToList(); } if (newsFromRepo.Any()) { if (Int32.TryParse(newsParams.PageSize.ToString(), out int size) && Int32.TryParse(newsParams.PageNumber.ToString(), out int part)) { List <NewsForPanelDto> newsToReturn = NewsForPanelDto.Map(newsFromRepo.Skip(part * size).Take(size).ToList()); return(Ok(newsToReturn)); } else { throw new Exception("invalid params"); } } else { return(NoContent()); } }
public async Task <IActionResult> GetNews([FromQuery] NewsParamsDto newsParams) { List <News> newsFromRepo = await _dbContext.News.Include(p => p.Photo) .Where(n => n.Section == newsParams.Section.ToString()) .OrderByDescending(n => n.AddedAt).ToListAsync(); if (newsFromRepo.Any()) { if (Int32.TryParse(newsParams.PageSize.ToString(), out int size) && Int32.TryParse(newsParams.PageNumber.ToString(), out int part)) { var temp = newsFromRepo.Skip(part * size).Take(size).ToList(); List <NewsForSectionDto> newsToReturn = NewsForSectionDto.Map(temp); if (newsToReturn == null) { return(Ok()); } return(Ok(newsToReturn)); } else { throw new Exception("invalid params"); } } else { return(NoContent()); } }