Esempio n. 1
0
        public async ValueTask <ReadMangaResponse> Read(FilterByMangaRequest filter)
        {
            var response = new ReadMangaResponse();

            await response.Load(context, filter);

            return(response);
        }
Esempio n. 2
0
        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();
        }