/// <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) { 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); }