コード例 #1
0
        private void Current_OrderGroupUpdated(object sender, OrderGroupEventArgs e)
        {
            if (e.OrderGroupType != OrderGroupEventType.PurchaseOrder)
            {
                return;
            }

            var orderAfterSave = sender as IPurchaseOrder;

            if (orderAfterSave == null)
            {
                return;
            }

            if (ShouldProcessVoid(orderAfterSave))
            {
                var payment = orderAfterSave.GetFirstForm().Payments.FirstOrDefault(x => x.PaymentMethodName.Equals(NetaxeptConstants.NetaxeptSystemKeyword, StringComparison.InvariantCultureIgnoreCase));
                if (payment == null)
                {
                    return;
                }

                CancelPayment(orderAfterSave, payment);
            }
        }
コード例 #2
0
        private void Current_OrderGroupUpdated(object sender, OrderGroupEventArgs e)
        {
            var orderRepository = _locator.GetInstance <IOrderRepository>();

            if (e.OrderGroupType != OrderGroupEventType.PurchaseOrder)
            {
                return;
            }

            var orderAfterSave  = sender as IPurchaseOrder;
            var orderBeforeSave = orderRepository.Load <IPurchaseOrder>(e.OrderGroupId);

            if (orderBeforeSave == null || orderAfterSave == null)
            {
                return;
            }

            // multi shipment scenario. Call payment gateway to release remaining authorization
            if (IsReleaseRemaining(orderBeforeSave, orderAfterSave))
            {
                var reseaseRemainingEventHandler = _locator.GetInstance <ReleaseRemainingEventHandler>();
                reseaseRemainingEventHandler.Handle(new ReleaseRemainingEvent(orderAfterSave));
            }

            if (orderAfterSave.OrderStatus == OrderStatus.Cancelled)
            {
                var orderCancelledEventHandler = _locator.GetInstance <OrderCancelledEventHandler>();
                orderCancelledEventHandler.Handle(new OrderCancelledEvent(orderAfterSave));
            }
        }
コード例 #3
0
        // ...this one is old, have IOrderRepositoryCallback
        public static void RecordOrderGroupEvent(object sender, OrderGroupEventArgs e)
        {
            var o  = sender.GetType();
            var e1 = e.OrderGroupId;
            var e2 = e.OrderGroupType;

            BfEventManager.SendToBF("OrderGroup", e1.ToString(), o.ToString());
        }
コード例 #4
0
        /// <summary>
        /// Adding lineitem entries to Sannsyn. Since OrderGroupUpdated is called often, we add last
        /// order indexed in DDS, so we don't index duplicate orders. All code is in a try, then the order
        /// will still be completed if error occures when calling sannsyn or DDS
        /// </summary>
        /// <param name="order"></param>
        /// <param name="e"></param>
        private void GenerateSannsynData(OrderGroup order, OrderGroupEventArgs e)
        {
            if (order.Status.Equals("InProgress"))
            {
                try
                {
                    SannsynDdsModel lastOrderIndexed = SannsynDdsModel.GetLastOrderIndexed();
                    if (lastOrderIndexed.LastIndexedOrderId < order.OrderGroupId)
                    {
                        ISannsynOrderIndexerService sannsynOrderIndexerService = ServiceLocator.Current.GetInstance <ISannsynOrderIndexerService>();
                        sannsynOrderIndexerService.AddLineItemsToSannsyn(order);

                        lastOrderIndexed.LastIndexedOrderId = order.OrderGroupId;
                        lastOrderIndexed.Save();
                    }
                }
                catch (Exception ex)
                {
                    _log.Error("Could not add order items to Sannsyn", ex);
                }
            }
        }
コード例 #5
0
        private void Current_OrderGroupUpdated(object sender, OrderGroupEventArgs e)
        {
            var orderRepository = _locator.GetInstance <IOrderRepository>();

            if (e.OrderGroupType != OrderGroupEventType.PurchaseOrder)
            {
                return;
            }

            var orderAfterSave  = sender as IPurchaseOrder;
            var orderBeforeSave = orderRepository.Load <IPurchaseOrder>(e.OrderGroupId);

            if (orderBeforeSave == null || orderAfterSave == null)
            {
                return;
            }

            if (orderAfterSave.OrderStatus.Equals(OrderStatus.Cancelled))
            {
                var orderCancelledEventHandler = _locator.GetInstance <OrderCancelledEventHandler>();
                orderCancelledEventHandler.Handle(new OrderCancelledEvent(orderAfterSave));
            }
        }
 void Current_OrderGroupUpdated(object sender, OrderGroupEventArgs e)
 {
     EventReciever.RecordOrderGroupEvent(sender, e);
 }
コード例 #7
0
        private void OnOrderGroupUpdated(object sender, OrderGroupEventArgs e)
        {
            var orderGroup = sender as OrderGroup;

            WebHookManager.NotifyAllAsync(EventNames.OrderGroupUpdated, new { e.OrderGroupId, e.OrderGroupType, OrderGroup = orderGroup });
        }
コード例 #8
0
 private void Current_OrderGroupUpdated(object sender, OrderGroupEventArgs e)
 {
     GenerateSannsynData(sender as OrderGroup, e);
 }