public async Task FindAsync(string query, string fileNameFilter) { _Query = query; _FileNameFilter = fileNameFilter; var homelink = new HomeLink() { Target = new Uri("https://api.github.com") }; // Apply representation back onto mission state machine await _httpClient.FollowLinkAsync(homelink) .ApplyRepresentationToAsync(this); }
private static async Task TypedLinksFromGenericType() { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders .UserAgent.Add(new ProductInfoHeaderValue("DarrelsGitClient", "1.0")); // Factory for typed links var linkFactory = new LinkFactory(); GitHubHelper.RegisterGitHubLinks(linkFactory); // Get Home Document, without strongly typed object var homelink = new HomeLink(); var homeResponse = await httpClient.FollowLinkAsync(homelink); var githubDocument = await homeResponse.Content.ReadAsGithubDocumentAsync(linkFactory); // Retrieve specific link from generic document var codeSearchLink = githubDocument.GetLink<CodeSearchLink>(); codeSearchLink.Query = ".Result user:darrelmiller"; var responseMessage = await httpClient.FollowLinkAsync(codeSearchLink); var githubDocument2 = await responseMessage.Content.ReadAsGithubDocumentAsync(); var searchResults = CodeSearchLink.InterpretMessageBody(githubDocument2); // Show Results foreach (var result in searchResults.Items) { Console.WriteLine(result.Path); } }