Ejemplo n.º 1
0
        /// <summary>
        /// Tries to apply the discount line item reward
        /// </summary>
        /// <param name="validate">
        /// The <see cref="ILineItemContainer"/> to validate against
        /// </param>
        /// <param name="customer">
        /// The customer.
        /// </param>
        /// <returns>
        /// The <see cref="Attempt{ILinetItem}"/>.
        /// </returns>
        public override Attempt <ILineItem> TryAward(ILineItemContainer validate, ICustomerBase customer)
        {
            var shippingLineItems = validate.ShippingLineItems();
            var audits            = shippingLineItems.Select(item =>
                                                             new CouponRewardAdjustmentAudit()
            {
                RelatesToSku = item.Sku,
                Log          = new[]
                {
                    new DataModifierLog()
                    {
                        PropertyName  = "Price",
                        OriginalValue = item.Price,
                        ModifiedValue = 0M
                    }
                }
            }).ToList();

            // Get the item template
            var discountLineItem = CreateTemplateDiscountLineItem(audits);
            var discount         = validate.ShippingLineItems().Sum(x => x.TotalPrice);

            discountLineItem.Price = discount;

            return(Attempt <ILineItem> .Succeed(discountLineItem));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Tries to apply the discount line item reward
        /// </summary>
        /// <param name="validate">
        /// The <see cref="ILineItemContainer"/> to validate against
        /// </param>
        /// <param name="customer">
        /// The customer.
        /// </param>
        /// <returns>
        /// The <see cref="Attempt{ILinetItem}"/>.
        /// </returns>
        public override Attempt<ILineItem> TryAward(ILineItemContainer validate, ICustomerBase customer)
        {
            var shippingLineItems = validate.ShippingLineItems();
            var audits = shippingLineItems.Select(item =>
                new CouponRewardAdjustmentAudit()
                    {
                        RelatesToSku = item.Sku,
                        Log = new[]
                                  {
                                      new DataModifierLog()
                                          {
                                              PropertyName = "Price",
                                              OriginalValue = item.Price,
                                              ModifiedValue = 0M
                                          }
                                  }
                    }).ToList();

            // Get the item template
            var discountLineItem = CreateTemplateDiscountLineItem(audits);
            var discount = validate.ShippingLineItems().Sum(x => x.TotalPrice);
            discountLineItem.Price = discount;

            return Attempt<ILineItem>.Succeed(discountLineItem);
        }
        /// <summary>
        /// Tries to apply the discount line item reward
        /// </summary>
        /// <param name="validate">
        /// The <see cref="ILineItemContainer"/> to validate against
        /// </param>
        /// <param name="customer">
        /// The customer.
        /// </param>
        /// <returns>
        /// The <see cref="Attempt{ILinetItem}"/>.
        /// </returns>
        public override Attempt <ILineItem> TryAward(ILineItemContainer validate, ICustomerBase customer)
        {
            // Get the item template
            var discountLineItem = CreateTemplateDiscountLineItem();

            var discount = validate.ShippingLineItems().Sum(x => x.TotalPrice);

            discountLineItem.Price = discount;

            return(Attempt <ILineItem> .Succeed(discountLineItem));
        }
        /// <summary>
        /// Tries to apply the discount line item reward
        /// </summary>
        /// <param name="validate">
        /// The <see cref="ILineItemContainer"/> to validate against
        /// </param>
        /// <param name="customer">
        /// The customer.
        /// </param>
        /// <returns>
        /// The <see cref="Attempt{ILinetItem}"/>.
        /// </returns>
        public override Attempt<ILineItem> TryAward(ILineItemContainer validate, ICustomerBase customer)
        {
            // Get the item template
            var discountLineItem = CreateTemplateDiscountLineItem();

            var discount = validate.ShippingLineItems().Sum(x => x.TotalPrice);

            discountLineItem.Price = discount;

            return Attempt<ILineItem>.Succeed(discountLineItem);
        }