Exemple #1
0
        public async Task <long> HandlerAsync(List <OrderCommand> command)
        {
            var guid = Guid.NewGuid();

            // save each item in the order

            List <OrderDetail> orderDetails = new List <OrderDetail>();

            foreach (var c in command)
            {
                var item = await _itemRepo.EntitySet
                           .AsNoTracking()
                           .Where(x => x.ID == c.ItemID)
                           .FirstOrDefaultAsync();

                var od = new OrderDetail()
                {
                    ItemID         = c.ItemID,
                    Price          = item.Price,
                    Quantity       = c.Quantity,
                    ShippedOrderID = guid,
                    TotalPrice     = item.Price * c.Quantity
                };
                orderDetails.Add(od);
            }

            var savedOrders = await _orderDetailRepo.InsertAsync(orderDetails);

            // save the shipping order

            var shippingOrder = new ShippedOrder()
            {
                ShippedOrderID  = guid,
                CreatedDateTime = DateTime.Now
            };

            var savedShippingOrder = await _shippedOrderRepo.InsertAsync(shippingOrder);

            return(savedShippingOrder.ID);
        }
 private void btnDisplay_Click(object sender, RoutedEventArgs e)
 {
     if (chkShipping.IsChecked == false)
     {
         Orders O1 = new Order.Orders();
         O1.setCusName(txtCusName.Text);
         O1.setCusNum(txtNum.Text);
         O1.setUnitPrice(Convert.ToDouble(txtUnitPrice.Text));
         O1.setNumber(Convert.ToInt32(txtQuantity.Text));
         O1.ComputePrice();
         lstDisplay.Items.Add(O1.displayOrder());
     }
     else
     {
         ShippedOrder O1 = new ShippedOrder();
         O1.setCusName(txtCusName.Text);
         O1.setCusNum(txtNum.Text);
         O1.setUnitPrice(Convert.ToDouble(txtUnitPrice.Text));
         O1.setNumber(Convert.ToInt32(txtQuantity.Text));
         O1.ComputePrice();
         lstDisplay.Items.Add(O1.displayOrder());
     }
 }