public async Task <IActionResult> List([FromQuery] ArticleCollectionList request)
        {
            Paginated <ArticleCollectionListItemViewModel> list = await Mediator.Send(request with
            {
                UserId = RequestUserId,
            });

            return(Ok(list));
        }
Пример #2
0
        public async Task <Paginated <ArticleCollectionListItemViewModel> > Handle(ArticleCollectionList request, CancellationToken cancellationToken)
        {
            new ArticleCollectionListValidator().ValidateAndThrow(request);

            return(await DB
                   .ArticleCollectionsOfUserOrPublic(request.UserId)
                   .AsNoTracking()
                   .Where(ac => ac.LanguageCode == request.Filter.LanguageCode)
                   .Where(ac => request.Filter.OwnedByUserId == null || ac.UserId == request.Filter.OwnedByUserId)
                   .Where(ac => string.IsNullOrWhiteSpace(request.Filter.Name) || ac.Name.StartsWith(request.Filter.Name))
                   .SortByCreateUpdateTimestamps(request.SortBy)
                   .ProjectTo <ArticleCollectionListItemViewModel>(Mapper.ConfigurationProvider)
                   .ToPaginatedAsync(request.Page, 50, cancellationToken));
        }