Пример #1
0
        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));
        }