/// <summary>
 /// Deprecated Method for adding a new object to the TrackingNumbers EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToTrackingNumbers(TrackingNumber trackingNumber)
 {
     base.AddObject("TrackingNumbers", trackingNumber);
 }
        public void UpdateSingleOrder(Order o, Dropship.CometProxy comet, Order_Entities db)
        {
            Console.WriteLine("Processing order {0}", o.DSLToolOrderId);

            // increment the number of update attempts
            o.UpdateAttempts = o.UpdateAttempts == null ? 1 : o.UpdateAttempts + 1;

            // make sure we have a valid integer for the order id
            int orderNum;
            if (!int.TryParse(o.VendorOrderId, out orderNum))
            {
                return;
            }

            // Get the order status back from Comet
            comet.Timeout = 60 * 1000 * 3;
            OrderStatus status = comet.GetOrderStatus(
                orderNum,
                0,
                ConfigurationManager.AppSettings["COMETUsername"],
                ConfigurationManager.AppSettings["COMETPassword"]
            );

            // Set the tracking numbers, if they exist

            if (status.ShippingStatus != null &&
                status.ShippingStatus.TrackingNumbers != null &&
                status.ShippingStatus.TrackingNumbers.Length > 0)
            {
                foreach (var s in status.ShippingStatus.TrackingNumbers)
                {
                    var trackingNumber = o.TrackingNumbers.FirstOrDefault(t => t.TrackingNumber1 == s);
                    if (trackingNumber == null)
                    {
                        var num = new TrackingNumber {TrackingNumber1 = s, TrackingNumberTypeId = 1};
                        o.TrackingNumbers.Add(num);
                    }
                }
            }

            // Map the Comet order status to the SIMPL order status
            switch (status.Status1)
            {
                case com.complemar.cometerpws.OrderStatuses.Approved:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Approved;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Cancelled:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Canceled;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Closed:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Closed;
                    break;
                case com.complemar.cometerpws.OrderStatuses.InProcess:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Confirmed;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Open:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Confirmed;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Received:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Closed;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Returned:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.RefusedOrder;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Shipped:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Shipped;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Submitted:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.Ordered;
                    break;
                case com.complemar.cometerpws.OrderStatuses.Unknown:
                    o.Status = (int)SIMPLDbEnums.OrderStatusEnum.NA;
                    break;
            }
            // apply the changes to the db after each order
            db.SaveChanges();
        }
 /// <summary>
 /// Create a new TrackingNumber object.
 /// </summary>
 /// <param name="trackingNumberId">Initial value of the TrackingNumberId property.</param>
 /// <param name="trackingNumber1">Initial value of the TrackingNumber1 property.</param>
 /// <param name="orderId">Initial value of the OrderId property.</param>
 /// <param name="trackingNumberTypeId">Initial value of the TrackingNumberTypeId property.</param>
 public static TrackingNumber CreateTrackingNumber(global::System.Int32 trackingNumberId, global::System.String trackingNumber1, global::System.Int32 orderId, global::System.Int32 trackingNumberTypeId)
 {
     TrackingNumber trackingNumber = new TrackingNumber();
     trackingNumber.TrackingNumberId = trackingNumberId;
     trackingNumber.TrackingNumber1 = trackingNumber1;
     trackingNumber.OrderId = orderId;
     trackingNumber.TrackingNumberTypeId = trackingNumberTypeId;
     return trackingNumber;
 }