Esempio n. 1
0
        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
                        });
                    }
                }
            }
        }
Esempio n. 2
0
 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();
     }
 }
Esempio n. 3
0
        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();
            }
        }