public async Task <IActionResult> List([FromQuery] ArticleCollectionList request) { Paginated <ArticleCollectionListItemViewModel> list = await Mediator.Send(request with { UserId = RequestUserId, }); return(Ok(list)); }
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)); }