private void GetBill() { var controller = new WaiterController(); var data = controller.GetBill(int.Parse(ActiveBills.SelectedValue)); BillToSplit.Value = data.BillID.ToString(); // Set the original bill items OriginalBillItems.DataSource = data.Items; OriginalBillItems.DataBind(); // empty out other bill NewBillItems.DataSource = null; NewBillItems.DataBind(); }
protected void SplitBill_Click(object sender, EventArgs e) { // Get the original bill items List<OrderItem> originalItems = new List<OrderItem>(); foreach(GridViewRow row in OriginalBillItems.Rows) { var qtyLabel = row.FindControl("Quantity") as Label; var nameLabel = row.FindControl("ItemName") as Label; var priceLabel = row.FindControl("Price") as Label; originalItems.Add(new OrderItem() { ItemName = nameLabel.Text, Quantity = int.Parse(qtyLabel.Text), Price = decimal.Parse(priceLabel.Text) }); } // Get the new bill items List<OrderItem> newBillItems = new List<OrderItem>(); foreach (GridViewRow row in NewBillItems.Rows) { var qtyLabel = row.FindControl("Quantity") as Label; var nameLabel = row.FindControl("ItemName") as Label; var priceLabel = row.FindControl("Price") as Label; newBillItems.Add(new OrderItem() { ItemName = nameLabel.Text, Quantity = int.Parse(qtyLabel.Text), Price = decimal.Parse(priceLabel.Text) }); } // Call the BLL to split the bill int billId = int.Parse(BillToSplit.Value); // from our HiddenField WaiterController controller = new WaiterController(); controller.SplitBill(billId, originalItems, newBillItems); ActiveBills.DataBind(); // Refresh the drop-down OriginalBillItems.DataSource = null; OriginalBillItems.DataBind(); NewBillItems.DataSource = null; NewBillItems.DataBind(); // Probably should include a message to the user about the new bill..... }