private static Receipt extractData(SQLiteDataReader reader) { Receipt receipt = new Receipt(); receipt.Id = reader.GetInt32(0); receipt.Recipient = reader.GetString(1); receipt.Address = reader.GetString(2); receipt.Phone = reader.GetString(3); receipt.Status = reader.GetInt32(4); receipt.Date = reader.GetString(5); receipt.Customer = CustomerDAL.GetById(reader.GetInt32(6)); string detailsQuery = $"SELECT * FROM {detailsTable} WHERE receiptId = @receiptId"; SQLiteCommand detailsCommand = new SQLiteCommand(detailsQuery, DAL.Conn); detailsCommand.Parameters.AddWithValue("@receiptId", receipt.Id); SQLiteDataReader detailsReader = detailsCommand.ExecuteReader(); while (detailsReader.HasRows) { while (detailsReader.Read()) { ReceiptDetails details = new ReceiptDetails(); details.Receipt = receipt; details.Product = ProductDAL.GetById(detailsReader.GetInt32(1)); details.Amount = detailsReader.GetInt32(2); receipt.Details.Add(details); } detailsReader.NextResult(); } string combosQuery = $"SELECT * FROM {combosTable} WHERE receiptId = @receiptId"; SQLiteCommand combosCommand = new SQLiteCommand(combosQuery, DAL.Conn); combosCommand.Parameters.AddWithValue("@receiptId", receipt.Id); SQLiteDataReader combosReader = combosCommand.ExecuteReader(); while (combosReader.HasRows) { while (combosReader.Read()) { ReceiptCombos combos = new ReceiptCombos(); combos.Receipt = receipt; combos.Combo = ComboDAL.GetById(combosReader.GetInt32(1)); combos.Amount = combosReader.GetInt32(2); receipt.Combos.Add(combos); } combosReader.NextResult(); } return(receipt); }
private async void buttonPay_Click(object sender, EventArgs e) { List <Product> rows_product = new List <Product>(); List <Combo> rows_combo = new List <Combo>(); var x = dataGridView1.Rows.Count; for (int rows = 0; rows < dataGridView1.Rows.Count - 1; rows++) { Product product = new Product() { Id = Int32.Parse(dataGridView1.Rows[rows].Cells[0].Value.ToString()), Name = dataGridView1.Rows[rows].Cells[1].Value.ToString(), Amount = Int32.Parse(dataGridView1.Rows[rows].Cells[2].Value.ToString()) }; rows_product.Add(product); } for (int rows = 0; rows < dataGridView2.Rows.Count - 1; rows++) { Combo combo = new Combo() { Id = Int32.Parse(dataGridView2.Rows[rows].Cells[0].Value.ToString()), Name = dataGridView2.Rows[rows].Cells[1].Value.ToString(), Amount = Int32.Parse(dataGridView2.Rows[rows].Cells[2].Value.ToString()) }; rows_combo.Add(combo); } List <ReceiptDetails> listReceiptDetails = new List <ReceiptDetails>(); foreach (var item in rows_product) { ReceiptDetails receiptDetails = new ReceiptDetails() { Product = new Product() { Id = item.Id, }, Amount = item.Amount }; listReceiptDetails.Add(receiptDetails); } List <ReceiptCombos> listReceiptCombos = new List <ReceiptCombos>(); foreach (var item in rows_combo) { ReceiptCombos ReceiptCombos = new ReceiptCombos() { Combo = new Combo() { Id = item.Id }, Amount = item.Amount }; listReceiptCombos.Add(ReceiptCombos); } int customerId = ((KeyValuePair <int, string>)cbCustomer.SelectedItem).Key; Receipt receipt = new Receipt() { Id = Int32.Parse(textId.Text), Recipient = textName.Text, Address = textAddress.Text, Phone = textPhone.Text, Date = dateDate.Text, Status = 1, Details = listReceiptDetails, Combos = listReceiptCombos, Customer = new Person() { Id = customerId, } }; var test = await ApiHandler.client.PutAsJsonAsync("receipt", receipt); LoadDataCustomer(); }