public async Task <ItemPriceResponse> UpdatePrice(Stream stream)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            Base.Http.Request request = CreateRequest();
            request.EndpointUri = "/v3/price";
            var payload = new StreamReader(stream).ReadToEnd();

            request.HttpRequest.Content = new StringContent(payload);
            // have to explicitly set this header for content, otherwise it also has encodding=utf-8
            // and it breaks response from API
            request.HttpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(request.GetContentType());

            Base.Http.IResponse response = await client.PutAsync(request);

            ItemPriceResponse result = await ProcessResponse <ItemPriceResponse>(response);

            return(result);
        }
Example #2
0
        public async Task <ItemPriceResponse> UpdatePromotionPrice(Stream stream)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            Base.Http.Request request = CreateRequest();
            request.EndpointUri = "/v3/price?promo=true";
            var payload = new StreamReader(stream).ReadToEnd();

            request.HttpRequest.Content = new StringContent(payload);
            //set the headers to avoid broken responses because of encodding=utf-8
            request.HttpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(request.GetContentType());

            Base.Http.IResponse response = await client.PutAsync(request);

            ItemPriceResponse result = await ProcessResponse <ItemPriceResponse>(response);

            return(result);
        }
        public async Task <ItemPriceResponse> UpdatePrice(string sku, string currency, double price)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            Base.Http.Request request = CreateRequest();
            request.EndpointUri = "/v2/prices";
            request.QueryParams.Add("sku", sku);
            request.QueryParams.Add("currency", currency);
            request.QueryParams.Add("price", price.ToString());
            request.HttpRequest.Content = new StringContent("");
            request.HttpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(request.GetContentType());

            Base.Http.IResponse response = await client.PutAsync(request);

            ItemPriceResponse result = await ProcessResponse <ItemPriceResponse>(response);

            return(result);
        }