Exemplo n.º 1
0
        public override PromotionReward[] GetPromotionRewards()
        {
            var retVal = new CatalogItemReward {
                Amount = Amount, AmountTypeId = (int)RewardAmountType.Relative
            };

            return(new PromotionReward[] { retVal });
        }
        public override PromotionReward[] GetPromotionRewards()
        {
            var retVal = new CatalogItemReward {
                SkuId = SelectedSkuId, QuantityLimit = Quantity, AmountTypeId = (int)RewardAmountType.Gift
            };

            return(new PromotionReward[] { retVal });
        }
        public void Can_run_activity_removediscount()
        {
            var orderGroup = CreateCart();

            var promotionId       = Guid.NewGuid().ToString();
            var lineItemSkuReward = orderGroup.OrderForms[0].LineItems[0];

            lineItemSkuReward.Discounts.Add(new LineItemDiscount()
            {
                DiscountAmount = 100,
                PromotionId    = promotionId,
                DiscountCode   = "code",
                LineItemId     = lineItemSkuReward.LineItemId
            });

            var reward = new CatalogItemReward
            {
                PromotionId   = promotionId,
                Amount        = 100,
                AmountTypeId  = 2,
                SkuId         = lineItemSkuReward.CatalogItemId,
                QuantityLimit = 1
            };

            var mockUnitOfWork = new Mock <IUnitOfWork>();
            var repository     = new Mock <IMarketingRepository>();

            repository.Setup(x => x.PromotionRewards).Returns(() => new[] { reward }.AsQueryable());
            repository.Setup(x => x.UnitOfWork).Returns(mockUnitOfWork.Object);
            repository.SetupAllProperties();

            var activity = new RemoveDiscountActivity(repository.Object);

            InvokeActivity(activity, orderGroup);

            // now check if order contains any discounts
            var forms      = from f in orderGroup.OrderForms select f;
            var orderForms = forms as OrderForm[] ?? forms.ToArray();

            Assert.True((from f in orderForms select f.Discounts.Count()).Sum() == 0, "still contains form discounts");

            Assert.False(forms.SelectMany(f => f.LineItems).Any(x => x.LineItemId == lineItemSkuReward.LineItemId), "still contains line item added as promotion reward");

            var shipments = from s in orderForms select s.Shipments;

            foreach (var shipmentCollection in shipments)
            {
                Assert.True((from s in shipmentCollection select s.Discounts.Count()).Sum() == 0, "still contains shipment discounts");
            }

            var lineitems = from s in orderForms select s.LineItems;

            foreach (var lineItemCollection in lineitems)
            {
                Assert.True((from s in lineItemCollection select s.Discounts.Count()).Sum() == 0, "still contains lineitem discounts");
            }
        }
Exemplo n.º 4
0
        public override PromotionReward[] GetPromotionRewards()
        {
            var retVal = new CatalogItemReward
            {
                Amount        = Amount,
                QuantityLimit = NumItem,
                AmountTypeId  = (int)RewardAmountType.Relative,
                ProductId     = SelectedItemId,
                ExcludingSkus = String.Join(";", ExcludingSkuIds)
            };

            return(new PromotionReward[] { retVal });
        }
Exemplo n.º 5
0
        private PromotionReward AddCatalogReward(Promotion promotion, decimal amount, RewardAmountType amountType)
        {
            var promotionReward = new CatalogItemReward
            {
                Amount       = amount,
                AmountTypeId = amountType.GetHashCode(),
                PromotionId  = promotion.PromotionId
            };

            MarketingRepository.Add(promotionReward);
            MarketingRepository.UnitOfWork.Commit();

            return(promotionReward);
        }
Exemplo n.º 6
0
        public override PromotionReward[] GetPromotionRewards()
        {
            var retVal = new CatalogItemReward
            {
                Amount              = Amount,
                AmountTypeId        = (int)RewardAmountType.Absolute,
                QuantityLimit       = NumItem,
                ExcludingCategories = String.Join(";", ExcludingCategoryIds),
                ExcludingProducts   = String.Join(";", ExcludingProductIds),
                ExcludingSkus       = String.Join(";", ExcludingSkuIds)
            };

            return(new PromotionReward[] { retVal });
        }