private void btnRetrieveById_Click(object sender, EventArgs e) { using (var ctx = new OrderITEntitiesIA()) { ctx.ContextOptions.ProxyCreationEnabled = false; var id = Convert.ToInt32(OrderId.Text); var order = ctx.Orders.Include("Customer").Include("OrderDetails.Product").FirstOrDefault(c => c.OrderId == id); if (order == null) { MessageBox.Show("Order doesn't exist"); } else { cmbCustomers.SelectedItem = cmbCustomers.Items.Cast <Customer>().First(c => c.CompanyId == order.Customer.CompanyId); ShippingAddress.Text = order.ShippingAddress.Address; ShippingCity.Text = order.ShippingAddress.City; ShippingCountry.Text = order.ShippingAddress.Country; ShippingZipCode.Text = order.ShippingAddress.ZipCode; OrderDate.Text = order.OrderDate.ToString("dd/MM/yyyy"); EstimatedShippingDate.Text = (order.EstimatedShippingDate.HasValue) ? order.EstimatedShippingDate.Value.ToString("dd/MM/yyyy") : String.Empty; ActualShippindDate.Text = (order.ActualShippingDate.HasValue) ? order.ActualShippingDate.Value.ToString("dd/MM/yyyy") : String.Empty; Details.Items.Clear(); foreach (var detail in order.OrderDetails) { Details.Items.Add(new ListViewItem(new string[] { detail.Product.Name, detail.Quantity.ToString(), detail.UnitPrice.ToString(), detail.Discount.ToString() }) { Tag = detail }); } } } }
private void CH6_Load(object sender, EventArgs e) { using (var ctx = new OrderITEntitiesIA()) { ctx.ContextOptions.ProxyCreationEnabled = false; cmbCustomers.DataSource = ctx.Companies.OfType <Customer>().ToList(); cmbProducts.DataSource = ctx.Products.ToList(); } }
private void CreateOrder_Click(object sender, EventArgs e) { using (var transaction = new TransactionScope()) { using (var ctx = new OrderITEntitiesIA()) { var order = new Order { Customer = new Customer() { CompanyId = ((Customer)cmbCustomers.SelectedItem).CompanyId }, OrderDate = DateTime.Now.Date, ShippingAddress = new AddressInfo() { Address = ShippingAddress.Text, City = ShippingCity.Text, Country = ShippingCountry.Text, ZipCode = ShippingZipCode.Text } }; var r = new Random(); foreach (var item in Details.Items) { var listItem = (ListViewItem)item; var detail = new OrderDetail() { OrderDetailId = r.Next(), Product = new Product { ProductId = ((OrderDetail)listItem.Tag).Product.ProductId }, Quantity = Convert.ToInt32(listItem.SubItems[1].Text), UnitPrice = Convert.ToDecimal(listItem.SubItems[2].Text), Discount = Convert.ToDecimal(listItem.SubItems[3].Text) }; order.OrderDetails.Add(detail); } ctx.Orders.AddObject(order); ctx.ObjectStateManager.ChangeObjectState(order.Customer, EntityState.Unchanged); foreach (var item in order.OrderDetails) { ctx.ObjectStateManager.ChangeObjectState(item.Product, EntityState.Unchanged); } ctx.SaveChanges(); ctx.ExecuteStoreCommand("update product set availableitems = availableitems - od.Quantity from product p join [OrderDetail] od on od.ProductId = p.ProductId where od.orderid = {0}", order.OrderId); MessageBox.Show("Order created with id " + order.OrderId); OrderId.Text = order.OrderId.ToString(); } transaction.Complete(); } }