/// <summary> /// Called when the order has saving. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see><cref>EntitySaveEventArgs{T}.Ecommerce.OrderManagement.Orders.Order&gt;</cref></see> instance containing the event data.</param> protected virtual void OnOrderSaving([NotNull] object sender, [NotNull] SaveEntityEventArgs <Order> e) { Debug.ArgumentNotNull(sender, "sender"); Debug.ArgumentNotNull(e, "e"); if (this.StrategyResolver == null && Context.Entity != null) { this.StrategyResolver = Context.Entity.Resolve <OrderProcessingStrategyResolver>(); } Assert.IsNotNull(this.StrategyResolver, "Unable to save the order. Strategy Resolver cannot be null."); IEnumerable <OrderProcessingStrategy> strategies = this.StrategyResolver.GetStrategies(e.OldEntity, e.NewEntity); Dictionary <string, object> parameters = new Dictionary <string, object> { { "oldOrder", e.OldEntity } }; Assert.IsNotNull(this.OrderProcessor, "Unable to save the order. Order Processor cannot be null."); foreach (OrderProcessingStrategy strategy in strategies) { this.OrderProcessor.OrderProcessingStrategy = strategy; this.OrderProcessor.ProcessOrder(e.NewEntity, parameters); } this.oldEntity = e.OldEntity; var orderSaving = this.OrderSaving; if (orderSaving != null) { orderSaving(this, e); } }
/// <summary> /// Called when the order has saved. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see><cref>Sitecore.Ecommerce.Data.EntityEventArgs&lt;Sitecore.Ecommerce.OrderManagement.Orders.Order&gt;</cref></see> instance containing the event data.</param> protected virtual void OnOrderSaved([NotNull] object sender, [NotNull] EntityEventArgs <Order> e) { Debug.ArgumentNotNull(sender, "sender"); Debug.ArgumentNotNull(e, "e"); var orderSaved = this.OrderSaved; if (orderSaved != null) { var args = new SaveEntityEventArgs <Order>(this.oldEntity, e.Entity); orderSaved(this, args); } }
/// <summary> /// Shows the messages. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The arguments.</param> public void ShowMessages([NotNull] object sender, [NotNull] SaveEntityEventArgs <Order> args) { Assert.ArgumentNotNull(sender, "sender"); Assert.ArgumentNotNull(args, "args"); var newState = args.NewEntity.State; Assert.IsNotNull(newState, "Unable to show message. State of the changed order cannot be null."); if (newState.Code != OrderStateCode.InProcess) { return; } var oldState = args.OldEntity.State; Assert.IsNotNull(oldState, "Unable to show message. State of the initial order cannot be null."); this.ShowMessage(oldState, newState, OrderStateCode.InProcessCapturedInFull, Texts.OrderStateChangedToCaptured); this.ShowMessage(oldState, newState, OrderStateCode.InProcessPackedInFull, Texts.OrderStateChangedToPacked); this.ShowMessage(oldState, newState, OrderStateCode.InProcessShippedInFull, Texts.OrderStateChangedToShipped); }
/// <summary> /// Called when the order has saved. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see><cref>Sitecore.Ecommerce.Data.EntityEventArgs&lt;Sitecore.Ecommerce.OrderManagement.Orders.Order&gt;</cref></see> instance containing the event data.</param> protected virtual void OnOrderSaved([NotNull] object sender, [NotNull] EntityEventArgs<Order> e) { Debug.ArgumentNotNull(sender, "sender"); Debug.ArgumentNotNull(e, "e"); var orderSaved = this.OrderSaved; if (orderSaved != null) { var args = new SaveEntityEventArgs<Order>(this.oldEntity, e.Entity); orderSaved(this, args); } }