public async Task <PagedList <Opinion> > GetPagedOpinions(OpinionPaginationParams opinionPaginationParams) { var opinions = await GetWhere <Opinion>(o => o.ReportsCount > 0); if (opinionPaginationParams.ShowNotVisible) { opinions = opinions.Where(o => (o.IsVisible.HasValue && !o.IsVisible.Value) || o.ReportsCount > 0); } if (!opinionPaginationParams.OrderByDescending) { opinions = opinions.OrderBy(o => o.ReportsCount); } if (!string.IsNullOrEmpty(opinionPaginationParams.UserName)) { opinions = opinions.Where(o => o.User.UserName.ToLower().Contains(opinionPaginationParams.UserName.ToLower())); } if (!string.IsNullOrEmpty(opinionPaginationParams.Content)) { opinions = opinions.Where(o => o.Content.ToLower().Contains(opinionPaginationParams.Content.ToLower())); } opinions = opinions.OrderByDescending(o => o.ReportsCount); return(PagedList <Opinion> .Create(opinions.AsQueryable(), opinionPaginationParams.PageNumber, opinionPaginationParams.PageSize)); }
public async Task <IActionResult> GetOpinions([FromQuery] OpinionPaginationParams opinionPaginationParams) { var opinions = await database.AdminRepository.GetPagedOpinions(opinionPaginationParams); var opinionsToReturn = mapper.Map <ICollection <OpinionDetailsDto> >(opinions); Response.AddPagination(opinions.CurrentPage, opinions.PageSize, opinions.TotalCount, opinions.TotalPages); return(Ok(opinionsToReturn)); }