/// <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);
/// <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);
public Task <Post> OnPostUpdatedAsync([EventMessage] int id, PostByIdDataLoader dataLoader, CancellationToken cancellationToken) => dataLoader.LoadAsync(id, cancellationToken);