Exemplo n.º 1
0
        /// <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&amp;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);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Called when the order has saved.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see><cref>Sitecore.Ecommerce.Data.EntityEventArgs&amp;lt;Sitecore.Ecommerce.OrderManagement.Orders.Order&amp;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&amp;lt;Sitecore.Ecommerce.OrderManagement.Orders.Order&amp;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);
      }
    }