コード例 #1
0
        /// <summary>
        /// Processes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public virtual void Process(PipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            ShoppingCart    shoppingCart    = Context.Entity.GetInstance <ShoppingCart>();
            PaymentProvider paymentProvider = Context.Entity.Resolve <PaymentProvider>(shoppingCart.PaymentSystem.Code);

            PaymentUrlResolver paymentUrlResolver = new PaymentUrlResolver();
            PaymentArgs        paymentArgs        = new PaymentArgs
            {
                ShoppingCart = shoppingCart,
                PaymentUrls  = paymentUrlResolver.Resolve(),
            };

            StringBuilder description = new StringBuilder();

            foreach (ShoppingCartLine shoppingCartLine in shoppingCart.ShoppingCartLines)
            {
                description.Append(shoppingCartLine.Product.Title);
                description.Append(", ");
            }

            paymentArgs.Description = description.ToString().Trim().TrimEnd(',');

            paymentProvider.Invoke(shoppingCart.PaymentSystem, paymentArgs);

            args.AbortPipeline();
        }