public override void Visit(Order order) { var linkedOrder = order as LinkedOrder; if (linkedOrder == null || linkedOrder.RelatedOrder != null) { return; } linkedOrder.RelatedOrder = GetRelatedOrderFromRelatedLineItems(order) ?? GetRelatedOrderFromRelatedOrderId(order); if (linkedOrder.RelatedOrder == null) { throw new UnableToRetrieveRelatedOrderException(linkedOrder); } if (!linkedOrder.RelatedOrder.LineItems.Any()) { #if DEBUG Console.WriteLine(" Read related OrderId {0}", (linkedOrder.RelatedOrder.Id)); #endif linkedOrder.RelatedOrder = orderMapper.GetOrder(linkedOrder.RelatedOrder.Id); } }
public override void Visit(Order order) { if (!OrderIsNostroOrLockInDisbursal(order.OrderType) || !order.RelatedOrderId.HasValue || order.RelatedOrderId == 0 || !LineItemHasNullFundingSource(order)) { return; } var relatedOrder = orderMapper.GetOrder(order.RelatedOrderId.Value); if (relatedOrder.OrderType != OrderType.LockIn) { return; } order.LineItems.Where(li => li.FundingSource is NullLineItemFundingSource) .ForEach(li => SetFundingSource(li, relatedOrder)); }
public override void Visit(Order order) { var reissue = order as Reissue; if (reissue != null) { var repurchaseId = orderMapper.GetRepurchaseOrderIdFromReissueOrderId(reissue.Id); if (repurchaseId < 1) { throw new ArgumentException(string.Format("Unable to find repurchase for reissue order Id {0}", reissue.Id), "reissueOrder"); } reissue.Repurchase = orderService.GetOrder(repurchaseId); if (reissue.Repurchase == null) { throw new ArgumentException(string.Format("invalid repurchase order id {0}", repurchaseId), "repurchaseId"); } } }