public async Task <IActionResult> GetPhotosForModeraion([FromQuery] PhotosForModerationParams photosParams) { var photos = await _repo.GetPhotosForModeration(photosParams); Response.AddPagination(photos.CurrentPage, photos.PageSize, photos.TotalCount, photos.TotalPages); return(Ok(photos)); }
public async Task <PagedList <PhotoForModerationDTO> > GetPhotosForModeration(PhotosForModerationParams photosParams) { var photos = _context.Photos.Include(u => u.User).IgnoreQueryFilters() .Where(p => p.IsApproved == false).OrderBy(p => p.DateAdded) .Select(u => new PhotoForModerationDTO { Id = u.Id, UserName = u.User.UserName, Url = u.Url, IsApproved = u.IsApproved, DateAdded = u.DateAdded, IsMain = u.IsMain }) .AsQueryable(); if (!string.IsNullOrEmpty(photosParams.OrderBy)) { switch (photosParams.OrderBy) { case "newest": photos = photos.OrderByDescending(p => p.DateAdded); break; default: photos = photos.OrderBy(p => p.DateAdded); break; } } return(await PagedList <PhotoForModerationDTO> .CreateAsync(photos, photosParams.PageNumber, photosParams.PageSize)); }