public async ValueTask <ReadMangaResponse> Read(FilterByMangaRequest filter) { var response = new ReadMangaResponse(); await response.Load(context, filter); return(response); }
public async ValueTask Load(MangasContext context, FilterByMangaRequest filter) { var query = context.Mangas.AsNoTracking(); if (filter.Title != null) { query = query.Where(m => m.Title.Contains(filter.Title)); } if (filter.Tags != null) { query = query.Include(m => m.Tags) .Where(m => m.Tags.Any(t => filter.Tags.Contains(t.TagId))); } Mangas = await query .OrderByDescending(m => m.Id) .Skip(filter.Offset) .Take(filter.Limit) .Select(manga => new ReadMangaItemResponse(manga)) .ToListAsync(); }