private async Task <BrickLinkResponse <PriceData <T> > > ExecutePartPriceRequest <T>(
            Part part,
            StateType state,
            PriceGuideType priceGuide
            ) where T : IPriceData
        {
            var request = new RestRequest($"items/part/{part.Number}/price");

            request.AddQueryParameter("new_or_used", state.GetEnumMemberValue());
            request.AddQueryParameter("guide_type", priceGuide.GetEnumMemberValue());
            request.AddQueryParameter("color_id", ((int)part.Color).ToString());

            var response = await client.ExecuteAsync(request);

            if (!response.IsSuccessful)
            {
                throw new Exception("Something wrong with BrickLink Part Price request");
            }

            return(JsonConvert.DeserializeObject <BrickLinkResponse <PriceData <T> > >(response.Content));
        }