Exemplo n.º 1
0
 // Click product list view to add an order item
 private void ListView_ItemClick(object sender, ItemClickEventArgs e)
 {
     using (var db = new OrderHelperContext())
     {
         // Find product ID for the clicked item
         int clickedPrdID = (e.ClickedItem as Product).ID;
         // Check if there is existing order item for this product
         OrderDetail orderItem = OrderDetails
                                 .Where(od => od.ProductID == clickedPrdID && String.IsNullOrEmpty(od.Remarks))
                                 .FirstOrDefault();
         // If clicked product does not exist in current order items, create a new item for this product
         if (orderItem == null)
         {
             var productToAdd = db.Products
                                .SingleOrDefault(p => p.ID == clickedPrdID);
             if (productToAdd == null)
             {
                 return;
             }
             var orderDetail = new OrderDetail
             {
                 Quantity  = 1,
                 ProductID = clickedPrdID,
                 UnitPrice = productToAdd.UnitPrice,
                 Product   = productToAdd,
             };
             OrderDetails.Add(orderDetail);
         }
         // If clicked product alreay exist in order list, increase the product quantity by 1
         else
         {
             orderItem.Quantity++;
         }
     }
 }
Exemplo n.º 2
0
        private async void btn_Checkout_Click(object sender, RoutedEventArgs e)
        {
            // Set order
            Order.OrderDate = DateTime.Now;
            Order.Payment   = (sender as Button).Content.ToString();
            // Speak order
            await Order.Speak();

            // Print order
            await PrintOrder(Order);

            // Save order
            using (var db = new OrderHelperContext())
            {
                foreach (OrderDetail od in OrderDetails)
                {
                    //db.Entry(od.Product).State = EntityState.Detached;
                    od.Product = null;
                }
                db.Add(this.Order);
                await db.SaveChangesAsync();
            }
            // Reset order
            this.InitializeOrders();
        }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes the singleton application object.  This is the first line of authored code
 /// executed, and as such is the logical equivalent of main() or WinMain().
 /// </summary>
 public App()
 {
     this.InitializeComponent();
     this.Suspending += OnSuspending;
     using (var db = new OrderHelperContext())
     {
         db.Database.Migrate();
         DbInitializer.Initialize(db);
     }
 }
Exemplo n.º 4
0
 public MainPage()
 {
     using (var db = new OrderHelperContext())
     {
         // Load all products under each category for menu to display
         Categories = db.Categories
                      .Include(c => c.Products)
                      .ToList();
     }
     this.InitializeOrders();
     this.InitializeComponent();
 }
 public OrderIndexPage()
 {
     this.DateOfOrders = DateTime.Today;
     using (var db = new OrderHelperContext())
     {
         var orderList = db.Orders
                         .Where(o => o.OrderDate.Date == DateOfOrders.Date)
                         .OrderBy(o => o.OrderDate)
                         .ToList();
         this.Orders = new ObservableCollection <Order>(orderList);
     }
     this.InitializeComponent();
 }
        private void btn_Delete_Click(object sender, RoutedEventArgs e)
        {
            int orderID       = (sender as Button).TabIndex;
            var orderToDelete = Orders
                                .SingleOrDefault(o => o.ID == orderID);

            if (orderToDelete == null)
            {
                return;
            }
            using (var db = new OrderHelperContext())
            {
                db.Entry(orderToDelete).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
                db.SaveChangesAsync();
            }
            this.Orders.Remove(orderToDelete);
        }
        // Print the receipt of selected order
        private async void btn_Print_Click(object sender, RoutedEventArgs e)
        {
            var orderID = (sender as Button).TabIndex;

            using (var db = new OrderHelperContext())
            {
                var orderToPrint = await db.Orders
                                   .Include(o => o.OrderDetails)
                                   .ThenInclude(od => od.Product)
                                   .SingleOrDefaultAsync(o => o.ID == orderID);

                if (orderToPrint == null)
                {
                    return;
                }
                await orderToPrint.Print();
            }
        }
Exemplo n.º 8
0
        // Reprint last receipt
        private async void btn_Reprint_Click(object sender, RoutedEventArgs e)
        {
            using (var db = new OrderHelperContext())
            {
                // Get the latest order with order details list
                var lastOrderDate = await db.Orders.MaxAsync(o => o.OrderDate);

                var lastOrder = await db.Orders
                                .Include(o => o.OrderDetails)
                                .ThenInclude(od => od.Product)
                                .FirstOrDefaultAsync(o => o.OrderDate == lastOrderDate);

                if (lastOrder == null)
                {
                    return;
                }
                await PrintOrder(lastOrder);
            }
        }