public int StoreOrder(Order order, IEnumerable <ChangeItem> changeItems) { int orderId = default(int); using (TransactionScope transaction = new TransactionScope()) { orderId = rep.SaveOrder(order); foreach (ChangeItem change in changeItems) { if (change.Object is OrderDetail) { OrderDetail detail = (OrderDetail)change.Object; switch (change.ChangeType) { case ChangeType.ChildInsert: case ChangeType.ChildUpate: rep.SaveOrderDetail(detail, order); break; case ChangeType.ChildDelete: rep.DeleteOrderDetail(detail.OrderDetailId); break; } } } if (ConfigurationHelper.UseMsmqService && order.OrderStatus == OrderStatus.Draft) { OrderToShipDTO dto = new OrderToShipDTO(); dto.Id = order.OrderId; DistributionSystemServiceClient client = new DistributionSystemServiceClient(); client.ShipOrder(dto); order = rep.GetById(order.OrderId); order.OrderStatus = OrderStatus.Ordered; rep.SaveOrder(order, false); } transaction.Complete(); } return(orderId); }
public int StoreOrder(Order order, IEnumerable<ChangeItem> changeItems) { int orderId = default(int); using (TransactionScope transaction = new TransactionScope()) { orderId = rep.SaveOrder(order); foreach (ChangeItem change in changeItems) { if (change.Object is OrderDetail) { OrderDetail detail = (OrderDetail) change.Object; switch (change.ChangeType) { case ChangeType.ChildInsert: case ChangeType.ChildUpate: rep.SaveOrderDetail(detail, order); break; case ChangeType.ChildDelete: rep.DeleteOrderDetail(detail.OrderDetailId); break; } } } if (ConfigurationHelper.UseMsmqService && order.OrderStatus == OrderStatus.Draft) { OrderToShipDTO dto = new OrderToShipDTO(); dto.Id = order.OrderId; DistributionSystemServiceClient client = new DistributionSystemServiceClient(); client.ShipOrder(dto); order = rep.GetById(order.OrderId); order.OrderStatus = OrderStatus.Ordered; rep.SaveOrder(order, false); } transaction.Complete(); } return orderId; }