// 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++; } } }
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(); }
/// <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); } }
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(); } }
// 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); } }