public static async Task Main() { var username = GitHubConstants.GitHubRepoDictionary.Values.First(); var repositoryName = GitHubConstants.GitHubRepoDictionary.Keys.First(); var gitHubUser = await GitHubGraphQLService.GetUser(username).ConfigureAwait(false); Console.WriteLine(gitHubUser); var gitHubRepository = await GitHubGraphQLService.GetRepository(username, repositoryName).ConfigureAwait(false); Console.WriteLine(gitHubRepository); try { var cancellationTokenSournce = new CancellationTokenSource(TimeSpan.FromSeconds(3)); await foreach (var issueList in GitHubGraphQLService.GetRepositoryIssues(username, repositoryName, cancellationTokenSournce.Token)) { foreach (var issue in issueList) { Console.WriteLine(issue); } } } catch (OperationCanceledException) { Console.WriteLine("GetRepositories Cancelled"); } Console.WriteLine("Completed. Press Any Key."); Console.ReadLine(); }
public static async Task Main(string[] args) { var username = GitHubConstants.GitHubRepoDictionary.Values.First(); var repositoryName = GitHubConstants.GitHubRepoDictionary.Keys.First(); var gitHubUser = await GitHubGraphQLService.GetUser(username).ConfigureAwait(false); Console.WriteLine(gitHubUser); var gitHubRepository = await GitHubGraphQLService.GetRepository(username, repositoryName).ConfigureAwait(false); Console.WriteLine(gitHubRepository); var count = 0; var cancellationTokenSournce = new CancellationTokenSource(); await foreach (var issueList in GitHubGraphQLService.GetRepositoryIssues(username, repositoryName, cancellationTokenSournce.Token)) { foreach (var issue in issueList) { Console.WriteLine(issue); } if (++count > 5) { cancellationTokenSournce.Cancel(); } } Console.WriteLine("Completed. Press Any Key."); Console.ReadLine(); }
public static async IAsyncEnumerable <GitHubRepository> GetRepositories(Dictionary <string, string> repositoryDictionary) { var getRepositoryTaskList = repositoryDictionary.Select(x => GitHubGraphQLService.GetRepository(x.Value, x.Key)).ToList(); while (getRepositoryTaskList.Any()) { var finishedGetRepositoryTask = await Task.WhenAny(getRepositoryTaskList).ConfigureAwait(false); getRepositoryTaskList.Remove(finishedGetRepositoryTask); var repository = await finishedGetRepositoryTask.ConfigureAwait(false); yield return(repository); } }