public override GetCartResult Execute(IUnitOfWork unitOfWork, GetCartParameter parameter, GetCartResult result) { if (result.Cart.Status == "Saved") { GetCartPricingResult cartPricing1 = this.pricingPipeline.GetCartPricing(new GetCartPricingParameter(result.Cart) { CalculateShipping = true, CalculateOrderLines = false }); } if (!parameter.CalculateShipping || !result.Cart.OrderLines.Any <OrderLine>((Func <OrderLine, bool>)(o => this.orderLineUtilities.GetIsActive(o)))) { return(this.NextHandler.Execute(unitOfWork, parameter, result)); } GetCartPricingResult cartPricing = this.pricingPipeline.GetCartPricing(new GetCartPricingParameter(result.Cart) { CalculateShipping = true, CalculateOrderLines = false }); if (cartPricing.ResultCode != ResultCode.Success) { result.CanCheckOut = cartPricing.SubCode == SubCode.PricingShippingNotCalculated && result.CanCheckOut; this.CopyMessages((ResultBase)cartPricing, (ResultBase)result); } return(this.NextHandler.Execute(unitOfWork, parameter, result)); }
public override GetCartResult Execute(IUnitOfWork unitOfWork, GetCartParameter parameter, GetCartResult result) { if (!result.Cart.OrderLines.Any <OrderLine>()) { return(this.NextHandler.Execute(unitOfWork, parameter, result)); } if (result.Cart.Status != "Cart" && result.Cart.Status != "Saved" && result.Cart.Status != "AwaitingApproval" && result.Cart.Status != "SubscriptionOrder") { return(this.NextHandler.Execute(unitOfWork, parameter, result)); } if (!parameter.ForceRecalculation) { DateTimeOffset?lastPricingOn = result.Cart.LastPricingOn; if (lastPricingOn.HasValue) { lastPricingOn = result.Cart.LastPricingOn; if ((DateTimeOffset)lastPricingOn.Value.DateTime.AddMinutes((double)this.cartSettings.MinutesBeforeRecalculation) > DateTimeProvider.Current.Now) { return(this.NextHandler.Execute(unitOfWork, parameter, result)); } } } result.Cart.ShippingCalculationNeededAsOf = DateTimeProvider.Current.Now; result.Cart.RecalculateTax = true; if (result.Cart.Type != "Quote" && result.Cart.Type != "Job") { result.Cart.RecalculatePromotions = true; } GetCartPricingResult cartPricing = this.pricingPipeline.GetCartPricing(new GetCartPricingParameter(result.Cart)); if (cartPricing.ResultCode == ResultCode.Success) { result.Cart = cartPricing.Cart; result.CartNotPriced = false; } else { result.CanCheckOut = false; result.CartNotPriced = true; this.CopyMessages((ResultBase)cartPricing, (ResultBase)result); } return(this.NextHandler.Execute(unitOfWork, parameter, result)); }