private async Task <IList <BookItem> > SerializeResultsFromGoogleBooksApiAsync(string url)
        {
            var client = _clientFactory.CreateClient();
            var uri    = new Uri(url);
            HttpResponseMessage response = null;

            try
            {
                response = await client.SendAsync(new HttpRequestMessage { RequestUri = uri, Method = HttpMethod.Get });

                response.EnsureSuccessStatusCode();
            }
            catch (HttpRequestException ex) when(ex.StatusCode == HttpStatusCode.NotFound)
            {
                //TODO: handle error properly
                return(new List <BookItem>());
            }
            catch (HttpRequestException ex) when(ex.StatusCode == HttpStatusCode.ServiceUnavailable)
            {
                //TODO: handle error properly
                return(new List <BookItem>());
            }
            catch (HttpRequestException)
            {
                //TODO: handle 'no such host is known' error properly
                return(new List <BookItem>());
            }
            string textResult = await response.Content.ReadAsStringAsync();

            GoogleBookApiSearchResponse myDeserializedClass = JsonConvert.DeserializeObject
                                                              <GoogleBookApiSearchResponse>(textResult);

            return(myDeserializedClass.items);
        }
Beispiel #2
0
        public async Task <IList <BookItem> > SerializeResultsFromGoogleBooksApiAsync(string url)
        {
            var client   = _clientFactory.CreateClient();
            var uri      = new Uri(url);
            var response = await client.SendAsync(new HttpRequestMessage { RequestUri = uri, Method = HttpMethod.Get });

            string textResult = await response.Content.ReadAsStringAsync();

            GoogleBookApiSearchResponse myDeserializedClass = JsonConvert.DeserializeObject
                                                              <GoogleBookApiSearchResponse>(textResult);

            return(myDeserializedClass.items);
        }