/// <summary>
 /// Deprecated Method for adding a new object to the Deliveries EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToDeliveries(Delivery delivery)
 {
     base.AddObject("Deliveries", delivery);
 }
        protected void SaveButton_Click(object sender, EventArgs e)
        {
            var container = new DeliveryManagerModelContainer();

            Delivery delivery;
            var deliveryIDParam = Request.QueryString[DeliveryConstants.IDParamName];
            if (deliveryIDParam != null)
            {
                int deliveryID = Int32.Parse(deliveryIDParam);
                delivery = container.Deliveries.Single(d => d.Id == deliveryID);
            }
            else
            {
                delivery = new Delivery();
                container.Deliveries.AddObject(delivery);
            }
            delivery.Date = Calendar.SelectedDate;
            delivery.DeliveryTypeId = Int32.Parse(DeliveryTypesList.SelectedValue);

            int deliveryCourierId;
            if (Int32.TryParse(CouriersList.SelectedValue, out deliveryCourierId))
                delivery.CourierId = deliveryCourierId;

            delivery.Status = StatusesList.Text;
            delivery.Address.Details = AddressTextBox.Text.Trim();
            delivery.Notes = NotesTextBox.Text.Trim();

            foreach (GridViewRow row in OrdersGridView.Rows)
            {
                var hdnField = row.Cells[0].Controls.OfType<HiddenField>().Single();
                var orderId = Int32.Parse(hdnField.Value);
                var deliveryOrder = delivery.Orders.SingleOrDefault(o => o.Id == orderId);
                var chkBox = row.Cells[0].Controls.OfType<CheckBox>().Single();
                if (chkBox.Checked)
                {
                    if (deliveryOrder == null)
                    {
                        var order = container.Orders.Single(o => o.Id == orderId);
                        delivery.Orders.Add(order);
                    }
                }
                else
                {
                    if (deliveryOrder != null)
                        delivery.Orders.Remove(deliveryOrder);
                }
            }

            container.SaveChanges();

            Response.Redirect("~/Deliveries/DeliveriesList.aspx", true);
        }
 /// <summary>
 /// Create a new Delivery object.
 /// </summary>
 /// <param name="id">Initial value of the Id property.</param>
 /// <param name="date">Initial value of the Date property.</param>
 /// <param name="status">Initial value of the Status property.</param>
 /// <param name="address">Initial value of the Address property.</param>
 /// <param name="deliveryTypeId">Initial value of the DeliveryTypeId property.</param>
 public static Delivery CreateDelivery(global::System.Int32 id, global::System.DateTime date, global::System.String status, Address address, global::System.Int32 deliveryTypeId)
 {
     Delivery delivery = new Delivery();
     delivery.Id = id;
     delivery.Date = date;
     delivery.Status = status;
     delivery.Address = StructuralObject.VerifyComplexObjectIsNotNull(address, "Address");
     delivery.DeliveryTypeId = deliveryTypeId;
     return delivery;
 }