Example #1
0
 private static NewsArticlesRequest getValidatedRequestWithoutPageToken(
     NewsArticlesRequest request) =>
 new NewsArticlesRequest(request.Symbols)
 {
     TimeInterval               = request.TimeInterval,
     SortDirection              = request.SortDirection,
     SendFullContentForItems    = request.SendFullContentForItems,
     ExcludeItemsWithoutContent = request.ExcludeItemsWithoutContent
 }
 .WithPageSize(request.Pagination.Size ?? Pagination.MaxNewsPageSize);
 public static async IAsyncEnumerable <INewsArticle> GetResponsesByItems(
     this NewsArticlesRequest singlePageOfItemsRequestWithEmptyPageToken,
     Func <NewsArticlesRequest, CancellationToken, Task <IPage <INewsArticle> > > getSinglePage,
     [EnumeratorCancellation] CancellationToken cancellationToken = default)
 {
     await foreach (var page in GetResponsesByPages(
                        singlePageOfItemsRequestWithEmptyPageToken, getSinglePage, cancellationToken)
                    .ConfigureAwait(false))
     {
         foreach (var item in page)
         {
             yield return(item);
         }
     }
 }
Example #3
0
 public static IAsyncEnumerable <IReadOnlyList <INewsArticle> > GetNewsArticlesPagesAsAsyncEnumerable(
     this IAlpacaDataClient client,
     NewsArticlesRequest request,
     CancellationToken cancellationToken) =>
 getValidatedRequestWithoutPageToken(request.EnsureNotNull(nameof(request)))
 .GetResponsesByPages(client.EnsureNotNull(nameof(client)).ListNewsArticlesAsync, cancellationToken);
Example #4
0
 public static IAsyncEnumerable <IReadOnlyList <INewsArticle> > GetNewsArticlesPagesAsAsyncEnumerable(
     this IAlpacaDataClient client,
     NewsArticlesRequest request) =>
 GetNewsArticlesPagesAsAsyncEnumerable(client, request, CancellationToken.None);