Пример #1
0
        public async Task <ActionResult <PaginatedItemsViewModel <AttachmentDTO> > > ItemsAsync(
            [FromQuery] int pageSize  = 10,
            [FromQuery] int pageIndex = 0,
            [FromQuery] Dictionary <string, Dictionary <string, List <string> > > filter = default,
            [FromQuery] Dictionary <string, int> sorting = default,
            CancellationToken cancellation = default)
        {
            var filterSpec = GenerateFilter(filter);
            var totalItems = await _attachmentService.CountAsync(filterSpec, cancellation);

            var pagedFilterSpec = GenerateFilter(filter, pageSize, pageIndex);
            var sortingSpec     = GenerateSortingSpec(sorting);
            var items           = await _attachmentService.ListAsync(pagedFilterSpec, sortingSpec, cancellation);

            var model = new PaginatedItemsViewModel <AttachmentDTO>(pageIndex, pageSize, totalItems, items.Select(_mapper.Map <AttachmentDTO>));

            return(Ok(model));
        }