Exemple #1
0
            /// <summary>
            /// Gets the posts asynchronous.
            /// </summary>
            /// <param name="tag">The tag.</param>
            /// <param name="context">The context.</param>
            /// <param name="dataLoader">The data loader.</param>
            /// <param name="cancellationToken">The cancellation token.</param>
            /// <returns>List of related posts.</returns>
            public async Task <IEnumerable <Post> > GetPostsAsync(Tag tag,
                                                                  [ScopedService] ApiContext context,
                                                                  PostByIdDataLoader dataLoader,
                                                                  CancellationToken cancellationToken)
            {
                int[] postIds = await context.Tags.AsNoTracking()
                                .Where(t => t.Id == tag.Id)
                                .Include(t => t.Posts)
                                .SelectMany(t => t.Posts.Select(p => p.Id))
                                .ToArrayAsync(cancellationToken)
                                .ConfigureAwait(false);

                return(await dataLoader.LoadAsync(postIds, cancellationToken)
                       .ConfigureAwait(false));
            }
 public Task <Post> GetPost(
     int id,
     PostByIdDataLoader dataLoader,
     CancellationToken cancellationToken) =>
 dataLoader.LoadAsync(id, cancellationToken);
Exemple #3
0
 /// <summary>
 /// Gets the post asynchronous.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <param name="dataLoader">The data loader.</param>
 /// <param name="cancellationToken">The cancellation token.</param>
 /// <returns>The post, with the given ID.</returns>
 public async Task <Post?> GetPostByIdAsync([ID(nameof(Post))] int id,
                                            PostByIdDataLoader dataLoader,
                                            CancellationToken cancellationToken) => await dataLoader.LoadAsync(id, cancellationToken)
 .ConfigureAwait(false);
Exemple #4
0
 public Task <Post> OnPostUpdatedAsync([EventMessage] int id,
                                       PostByIdDataLoader dataLoader,
                                       CancellationToken cancellationToken) => dataLoader.LoadAsync(id, cancellationToken);