public List <KeyValuePair <string, string> > GetAdditionalParameters(IAdditionalParameters additionalParameters)
        {
            List <KeyValuePair <string, string> > queryStringParameters       = new List <KeyValuePair <string, string> >();
            ProductAdditionalParameters           productAdditionalParameters = additionalParameters as ProductAdditionalParameters;

            if (productAdditionalParameters == null)
            {
                return(queryStringParameters);
            }

            if (productAdditionalParameters.PriceChannel != null)
            {
                queryStringParameters.Add(new KeyValuePair <string, string>("priceChannel", productAdditionalParameters.PriceChannel));
            }

            if (productAdditionalParameters.PriceCountry != null)
            {
                queryStringParameters.Add(new KeyValuePair <string, string>("priceCountry", productAdditionalParameters.PriceCountry));
            }

            if (productAdditionalParameters.PriceCurrency != null)
            {
                queryStringParameters.Add(new KeyValuePair <string, string>("priceCurrency", productAdditionalParameters.PriceCurrency));
            }

            if (productAdditionalParameters.PriceCustomerGroup != null)
            {
                queryStringParameters.Add(new KeyValuePair <string, string>("priceCustomerGroup", productAdditionalParameters.PriceCustomerGroup));
            }

            return(queryStringParameters);
        }
        public void GetProductAdditionalParametersBuilderFromFactory()
        {
            ProductAdditionalParameters productAdditionalParameters = new ProductAdditionalParameters();
            IParametersBuilderFactory <IAdditionalParametersBuilder> parametersBuilderFactory = this.clientFixture.GetService <IParametersBuilderFactory <IAdditionalParametersBuilder> >();
            IAdditionalParametersBuilder additionalParametersMessageBuilder = parametersBuilderFactory.GetParameterBuilder(productAdditionalParameters);

            Assert.Equal(typeof(ProductAdditionalParametersBuilder), additionalParametersMessageBuilder.GetType());
        }
Beispiel #3
0
        public void GetProductByIdWithAdditionalParameters()
        {
            IClient commerceToolsClient = this.productFixture.GetService <IClient>();
            ProductAdditionalParameters productAdditionalParameters = new ProductAdditionalParameters();

            productAdditionalParameters.PriceCurrency = "EUR";
            Product product = this.productFixture.CreateProduct();

            this.productFixture.ProductsToDelete.Add(product);
            Product retrievedProduct = commerceToolsClient
                                       .ExecuteAsync(new GetByIdCommand <Product>(new Guid(product.Id), productAdditionalParameters)).Result;

            Assert.Equal(product.Id, retrievedProduct.Id);
        }
        public void ProductGetByIdRequestMessageWithPriceCurrency()
        {
            ProductAdditionalParameters productAdditionalParameters = new ProductAdditionalParameters();

            productAdditionalParameters.PriceCurrency = "EUR";
            GetByIdCommand <Product> command = new GetByIdCommand <Product>(new Guid("2bafc816-4223-4ff0-ac8a-0f08a8f29fd6"), productAdditionalParameters);
            // This object cannot be retrieved with GetService method directly.
            // GetRequestMessageBuilder is registered as IRequestMessageBuilder among other request builders.
            GetRequestMessageBuilder requestMessageBuilder = new GetRequestMessageBuilder(
                this.clientFixture.GetService <IEndpointRetriever>(),
                this.clientFixture.GetService <IParametersBuilderFactory <IAdditionalParametersBuilder> >());
            HttpRequestMessage httpRequestMessage = requestMessageBuilder.GetRequestMessage(command);

            Assert.Equal(HttpMethod.Get, httpRequestMessage.Method);
            Assert.Equal("products/2bafc816-4223-4ff0-ac8a-0f08a8f29fd6?priceCurrency=EUR", httpRequestMessage.RequestUri.ToString());
        }