Exemplo n.º 1
0
            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));
            }
Exemplo n.º 2
0
            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));
            }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public Task <IReadOnlyList <Book> > GetBooksByIdAsync(
     [ID(nameof(Book))] long[] ids,
     BookByIdDataLoader dataLoader,
     CancellationToken cancellationToken) =>
 dataLoader.LoadAsync(ids, cancellationToken);
Exemplo n.º 5
0
 public Task <Book> GetBookByIdAsync(
     [ID(nameof(Book))] long id,
     BookByIdDataLoader dataLoader,
     CancellationToken cancellationToken) =>
 dataLoader.LoadAsync(id, cancellationToken);
Exemplo n.º 6
0
            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));
            }