public static ProductDiscountDraft DefaultProductDiscountDraftWithActive(ProductDiscountDraft draft, bool isActive)
        {
            var productDiscountDraft = DefaultProductDiscountDraft(draft);

            productDiscountDraft.IsActive = isActive;
            return(productDiscountDraft);
        }
        public static ProductDiscountDraft DefaultProductDiscountDraftWithPredicate(ProductDiscountDraft draft, string predicate)
        {
            var productDiscountDraft = DefaultProductDiscountDraft(draft);

            productDiscountDraft.Predicate = predicate;
            return(productDiscountDraft);
        }
        public static ProductDiscountDraft DefaultProductDiscountDraftWithKey(ProductDiscountDraft draft, string key)
        {
            var productDiscountDraft = DefaultProductDiscountDraft(draft);

            productDiscountDraft.Key = key;
            return(productDiscountDraft);
        }
        public ProductDiscount CreateProductDiscount(ProductDiscountDraft productDiscountDraft)
        {
            IClient         commerceToolsClient = this.GetService <IClient>();
            ProductDiscount productDiscount     = commerceToolsClient
                                                  .ExecuteAsync(new CreateCommand <ProductDiscount>(productDiscountDraft)).Result;

            return(productDiscount);
        }
        public static ProductDiscountDraft DefaultProductDiscountDraft(ProductDiscountDraft productDiscountDraft)
        {
            var randomInt = TestingUtility.RandomInt();

            productDiscountDraft.Name = new LocalizedString()
            {
                { "en", TestingUtility.RandomString(10) }
            };
            productDiscountDraft.Key       = $"Key{randomInt}";
            productDiscountDraft.IsActive  = true;
            productDiscountDraft.Value     = new ExternalProductDiscountValue();
            productDiscountDraft.Predicate = "1 = 1";
            productDiscountDraft.SortOrder = TestingUtility.RandomSortOrder();
            return(productDiscountDraft);
        }
        public void CreateProductDiscount()
        {
            IClient commerceToolsClient = this.productDiscountFixture.GetService <IClient>();

            //Create Product
            Product product = this.productDiscountFixture.CreateProductWithVariant();

            //Then Create Product Discount for this Product
            ProductDiscountDraft productDiscountDraft = this.productDiscountFixture.GetProductDiscountDraft(product.Id);
            ProductDiscount      productDiscount      = commerceToolsClient
                                                        .ExecuteAsync(new CreateCommand <ProductDiscount>(productDiscountDraft)).Result;

            this.productDiscountFixture.ProductDiscountsToDelete.Add(productDiscount);
            Assert.Equal(productDiscountDraft.Name["en"], productDiscount.Name["en"]);
        }
Example #7
0
        /// <summary>
        /// Get Product Discount Draft with external product discount value and can be used for all products
        /// </summary>
        /// <returns></returns>
        private ProductDiscountDraft GetProductDiscountDraft()
        {
            string predicate = "1 = 1";//can be used for all products
            ProductDiscountDraft productDiscountDraft = new ProductDiscountDraft();

            productDiscountDraft.Name = new LocalizedString()
            {
                { "en", TestingUtility.RandomString(10) }
            };
            productDiscountDraft.Value     = new ExternalProductDiscountValue();
            productDiscountDraft.Predicate = predicate;
            productDiscountDraft.SortOrder = TestingUtility.RandomSortOrder();
            productDiscountDraft.IsActive  = true;

            return(productDiscountDraft);
        }
Example #8
0
        /// <summary>
        /// Create Product Discount for specific product - put the product Id inside predicate of the product discount
        /// </summary>
        /// <param name="productId"></param>
        /// <returns></returns>
        public ProductDiscountDraft GetProductDiscountDraft(string productId)
        {
            string predicate = this.GetProductDiscountPredicateBasedonProduct(productId);
            ProductDiscountDraft productDiscountDraft = new ProductDiscountDraft();

            productDiscountDraft.Name = new LocalizedString()
            {
                { "en", this.RandomString(10) }
            };
            productDiscountDraft.Description = new LocalizedString()
            {
                { "en", this.RandomString(20) }
            };
            productDiscountDraft.Value      = GetProductDiscountValueAsAbsolute();
            productDiscountDraft.Predicate  = predicate;
            productDiscountDraft.SortOrder  = this.RandomSortOrder();
            productDiscountDraft.ValidFrom  = DateTime.Today.AddMonths(this.RandomInt(-5, -1));
            productDiscountDraft.ValidUntil = DateTime.Today.AddMonths(this.RandomInt(1, 5));
            productDiscountDraft.IsActive   = true;

            return(productDiscountDraft);
        }
        /// <summary>
        /// Create Product Discount for specific product - put the product Id inside predicate of the product discount
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="discountCentAmount"></param>
        /// <returns></returns>
        public ProductDiscountDraft GetProductDiscountDraft(string productId, int?discountCentAmount = null)
        {
            string predicate = this.GetProductDiscountPredicateBasedonProduct(productId);
            ProductDiscountDraft productDiscountDraft = new ProductDiscountDraft();

            productDiscountDraft.Name = new LocalizedString()
            {
                { "en", TestingUtility.RandomString(10) }
            };
            productDiscountDraft.Description = new LocalizedString()
            {
                { "en", TestingUtility.RandomString(20) }
            };
            productDiscountDraft.Value      = GetProductDiscountValueAsAbsolute(discountCentAmount);
            productDiscountDraft.Predicate  = predicate;
            productDiscountDraft.SortOrder  = TestingUtility.RandomSortOrder();
            productDiscountDraft.ValidFrom  = DateTime.Today;
            productDiscountDraft.ValidUntil = DateTime.Today.AddMonths(1);
            productDiscountDraft.IsActive   = true;
            productDiscountDraft.SetPredicate(product => product.ProductId() == productId && product.VariantId() == 1);

            return(productDiscountDraft);
        }
        public static ProductDiscountDraft DefaultProductDiscountDraftWithDiscountValue(ProductDiscountDraft draft, ProductDiscountValue value)
        {
            var productDiscountDraft = DefaultProductDiscountDraft(draft);

            productDiscountDraft.Value = value;
            return(productDiscountDraft);
        }
 public static void SetPredicate(this ProductDiscountDraft productDiscountDraft, Expression <Func <Product, bool> > expression)
 {
     productDiscountDraft.Predicate = expression.RenderDiscountPredicate();
 }