예제 #1
0
        /// <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();
        }