/// <summary> /// Fetches data from github using IHttpClientFactory /// </summary> /// <param name="username">username to be fetched</param> /// <returns>response object from github</returns> public async Task <ResponseObject> FetchDataFromGitHub(string username) { var response = new ResponseObject(ResponseType.Success, string.Empty); Uri uri = new Uri(UrlWorker.GitHubUrlConstructor(_appSettings.GitHubUsersUrl, _appSettings.GitHubClientId, _appSettings.GitHubClientSecret, username)); HttpRequestMessage httpRequest = new HttpRequestMessage(); httpRequest.Headers.Add("User-Agent", "ArcanysDemo"); httpRequest.Headers.Add("Accept", "*/*"); httpRequest.Headers.Add("Host", "api.github.com"); httpRequest.RequestUri = uri; httpRequest.Method = HttpMethod.Get; var client = _httpClientFactory.CreateClient(); var httpResponse = await client.SendAsync(httpRequest); if (httpResponse.IsSuccessStatusCode) { var responseFromGithub = await httpResponse.Content.ReadAsStringAsync(); response.Data = JsonConvert.DeserializeObject <GitHubUsers>(responseFromGithub); } else { response = new ResponseObject(ResponseType.Warning, string.Empty); ErrorHandling.LogCustomError("Username not found.", Enums.Severity.Information); } return(response); }
private static void Main(string[] args) { var inputPath = "urls.txt"; var outputPath = "urls.xml"; var provider = new TextFileUrlProvider(inputPath); var parser = new UrlScheme(); var writer = new XmlUrlWriter(outputPath); var worker = new UrlWorker <UrlScheme>(provider, parser, writer, new Logger()); worker.Convert(); Console.Read(); }