public async Task <IEnumerable <Book> > GetBooksAsync( Author author, [ScopedService] BookRefDbContext dbContext, BookByIdDataLoader bookById, CancellationToken cancellationToken) { long[] bookIds = await dbContext.Books .Where(s => s.Id == author.Id) .Select(s => s.Id) .ToArrayAsync(); return(await bookById.LoadAsync(bookIds, cancellationToken)); }
public async Task <IEnumerable <Book> > GetBooksAsync( Category category, [ScopedService] BookRefDbContext dbContext, BookByIdDataLoader bookById, CancellationToken cancellationToken) { long[] bookIds = await dbContext.Categories .Where(s => s.Id == category.Id) .SelectMany(s => s.BookCategories.Select(t => t.BookId)) .ToArrayAsync(); return(await bookById.LoadAsync(bookIds, cancellationToken)); }
public async Task <MyRecommendations> GetRecommendationsForBook( [ID(nameof(Book))] long id, BookByIdDataLoader dataLoader, [Service] IGetClaimsProvider claimsProvider, [ScopedService] BookRefDbContext context, CancellationToken cancellationToken) { var library = context.Libraries .First(e => e.Id == claimsProvider.LibraryId); var result = new MyRecommendations(); var source = await dataLoader.LoadAsync(id, cancellationToken); result.SourceBook = source; result.BookRecommedations = library.BookRecommedations.Where(e => e.SourceBookId == source.Id).ToList(); result.PersonRecommedations = library.PersonRecommedations.Where(e => e.SourceBookId == source.Id).ToList(); return(result); }
public Task <IReadOnlyList <Book> > GetBooksByIdAsync( [ID(nameof(Book))] long[] ids, BookByIdDataLoader dataLoader, CancellationToken cancellationToken) => dataLoader.LoadAsync(ids, cancellationToken);
public Task <Book> GetBookByIdAsync( [ID(nameof(Book))] long id, BookByIdDataLoader dataLoader, CancellationToken cancellationToken) => dataLoader.LoadAsync(id, cancellationToken);
public async Task <IReadOnlyList <BookModel> > GetBooks(AuthorModel authorModel, BookByIdDataLoader dataLoader, [ScopedService] LibraryDbContext context, CancellationToken cancellationToken) { int[] bookIds = await context.Books .Where(x => x.AuthorId == authorModel.Id) .Select(x => x.Id) .ToArrayAsync(); return(await dataLoader.LoadAsync(bookIds, cancellationToken)); }