public void ShipOrder(OrderToShipDTO orderToShip)
 {
     try
     {
         OrderShippedDTO order = new OrderShippedDTO();
         order.Id = orderToShip.Id;
         order.ShippedDate = DateTime.Now;
         using (OrderSystemServiceClient orderService = new OrderSystemServiceClient())
         {
             orderService.OrderShippedNotification(order);
         }
     }
     catch (Exception exp)
     {
         Console.WriteLine(exp.Message);
         throw;
     }
     Console.WriteLine(string.Format("Order with ID {0} shipped!", orderToShip.Id));
 }
        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;
        }