Exemplo n.º 1
0
        public void OnSuccess(int paymentId, int contentItemId)
        {
            var payment = _paymentService.GetPayment(paymentId);

            if (payment != null)
            {
                var order = _contentManager.Get <OrderPart>(payment.ContentItemId, VersionOptions.Latest); // _orderService.Get(payment.ContentItemId);
                // aggiorna l'odine in base al pagamento effettuato
                //order.Status = OrderPart.Pending;
                order.Status       = Constants.PaymentSucceeded;
                order.AmountPaid   = payment.Amount;
                order.CurrencyCode = payment.Currency;
                // update charge
                order.UpdateCharge(
                    new PaymentGatewayCharge("Payment Gateway", payment.Guid));
                order.LogActivity(OrderPart.Event, string.Format("Payed on POS {0}.", payment.PosName), "System");
                // svuota il carrello
                var cartContext = new CartFinalizedContext()
                {
                    Order = order
                };
                foreach (var handler in _cartLifeCycleEventHandlers)
                {
                    handler.Finalized(cartContext);
                }
                _shoppingCart.ClearAll();
                // raise order and payment events
                _contentManager.Publish(order.ContentItem);
                TriggerEvents(order);
            }
        }