private void checkOutButton_Click(object sender, RoutedEventArgs e) { string paymentStr = paymentTxt.Text.Trim(); int payment; bool success = int.TryParse(paymentStr, out payment); if (!success) { errorLbl.Text = "Payment must be a number!"; } else if (totalPrice == 0 || tax == 0) { errorLbl.Text = "Please input Seat ID!"; } else { int change = (totalPrice + tax) - payment; if (change > 0) { errorLbl.Text = "Payment is not enough!"; } else if (change <= 0) { SeatMediator mediator = new SeatMediator(); OrderMediator omediator = new OrderMediator(); Order customerOrder = omediator.getOrderBySeat(seatID); changeTxt.Text = "Change = \t\tRp. " + Math.Abs(change).ToString(); RestaurantTransactionMediator tmediator = new RestaurantTransactionMediator(); RestaurantTransactionFactory tfactory = new RestaurantTransactionFactory(); RestaurantTransaction transaction = tmediator.addRestaurantTransaction(tfactory.createNewRestaurantTransaction(seatID)); if (tmediator.addDetailRestaurantTransaction(transaction.transactionID, customerOrder.orderID) == null) { MessageBox.Show("Checkout failed!"); } else { MessageBox.Show("Checkout success!"); } //update seat dan ordernya Seat customerSeat = mediator.getSeat(seatID); customerSeat.status = "Available"; customerSeat = mediator.updateSeat(seatID, customerSeat); customerOrder.status = "Finished"; customerOrder = omediator.updateOrder(customerOrder.orderID, customerOrder); } } }
public DetailRestaurantTransaction addDetailRestaurantTransaction(int transactionID, int orderID) { RestaurantTransactionFactory factory = new RestaurantTransactionFactory(); Connection con = Connection.getConnection(); DetailRestaurantTransaction transaction = null; List <OrderDetail> orderDetails = (from o in con.db.OrderDetail where o.orderID == orderID select o).ToList(); foreach (OrderDetail o in orderDetails) { transaction = con.db.DetailRestaurantTransaction.Add(factory.createNewDetailRestaurantTransaction(transactionID, o.foodID, (int)o.quantity)); } con.db.SaveChanges(); return(transaction); }