public override async Task <Reviewable[]> SearchReviewablesAsync(string searchText, int pageOffset, int pageLimit)
        {
            Reviewable[]        reviewables = null;
            HttpResponseMessage response    = await client.GetAsync(getUrlForSearch(searchText, pageOffset, pageLimit));

            if (response.IsSuccessStatusCode)
            {
                var reviewableString = await response.Content.ReadAsStringAsync();

                BarcodeJSONSearchResponse search = JsonConvert.DeserializeObject <BarcodeJSONSearchResponse>(reviewableString);
                reviewables = search.reviewables.Select(getReviewable).ToArray();
            }

            return(reviewables);
        }
        public override async Task <Reviewable> GetReviewableByIDAsync(string id)
        {
            Reviewable          reviewable = null;
            HttpResponseMessage response   = await client.GetAsync(getUrlForId(id));

            if (response.IsSuccessStatusCode)
            {
                var reviewableString = await response.Content.ReadAsStringAsync();

                BarcodeJSONSearchResponse reviewableJSON = JsonConvert.DeserializeObject <BarcodeJSONSearchResponse>(reviewableString);
                var product = reviewableJSON.reviewables.First();
                reviewable = getReviewable(product);
            }
            return(reviewable);
        }