コード例 #1
0
        protected override async Task <bool> ReadDataAsync()
        {
            try
            {
                _logging.LogInformation("Sending request to read data...");

                JsonPlaceholderApiRequest apiRequest = new JsonPlaceholderApiRequest()
                {
                    Uri       = _appSettings.JsonPlaceholderSettings.Uri,
                    Accept    = _appSettings.JsonPlaceholderSettings.Accept,
                    UserAgent = _appSettings.JsonPlaceholderSettings.UserAgent
                };

                _repoList = await _importRepository.GetAsync(apiRequest);

                _logging.LogInformation("Completed request successfully.");
            }
            catch (Exception ex)
            {
                _logging.LogError(ex, "An error occurred when getting the reading the data.");

                return(false);
            }

            return(true);
        }
        public async Task Test_JsonPlaceholderRepository_GetAsync()
        {
            JsonPlaceholderApiRequest apiRequest = new JsonPlaceholderApiRequest()
            {
                Uri       = "http://jsonplaceholder.typicode.com/users",
                Accept    = "application/json",
                UserAgent = "Import-Export-Tool"
            };

            IJsonPlaceholderRepository repository = new JsonPlaceholderRepository();

            IEnumerable <JsonPlaceholderUserDetails> list = await repository.GetAsync(apiRequest);

            Assert.IsNotNull(list);

            if (list != null)
            {
                foreach (JsonPlaceholderUserDetails item in list)
                {
                    System.Diagnostics.Debug.WriteLine($"{item.Id} | {item.UserName} | {item.Name} | {item.Email}");
                    System.Diagnostics.Debug.WriteLine($"{item.Address.Street}, {item.Address.ZipCode}");
                    System.Diagnostics.Debug.WriteLine($"{item.Address.Geo.Lattitude}, {item.Address.Geo.Longitude}");
                    System.Diagnostics.Debug.WriteLine($"{item.Company.Name} | {item.Company.CatchPhrase} \n");
                }
            }
        }
コード例 #3
0
        public async Task <IEnumerable <JsonPlaceholderUserDetails> > GetAsync(JsonPlaceholderApiRequest apiRequest)
        {
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(apiRequest.Accept));
            client.DefaultRequestHeaders.Add("User-Agent", apiRequest.UserAgent);

            var streamTask = await client.GetStreamAsync(apiRequest.Uri);

            var list = await JsonSerializer.DeserializeAsync <List <JsonPlaceholderUserDetails> >(streamTask);

            return(list);
        }