public ActionResult Post(TransactionAddField field) { try { var authUser = Models.User.GetByUsernameAndPassword(field.AuthUsername, field.AuthPassword); if (authUser == null || !authUser.IsMinimumStaff()) { return(StatusCode(403)); } var user = Models.User.GetByUsername(field.UserUsername); if (user == null) { return(BadRequest(new { Message = "User does not exists" })); } var transaction = new Models.Transaction(); transaction.UserID = user.ID; transaction.CreatedAt = DateTime.Now; transaction.Insert(); foreach (Items item in field.Items) { var transactionItem = new Models.TransactionItem(); transactionItem.ItemID = item.ItemID; transactionItem.TransactionID = transaction.ID; transactionItem.Quantity = item.Quantity; transactionItem.Price = item.Price; transactionItem.Insert(); } } catch (SqlException ex) { return(BadRequest(new { Message = ex.Message })); } return(Ok()); }
private async void ButtonTransactionCheckout_Click(object sender, EventArgs e) { var itemPurchase = new List <TransactionItemAdd>(); foreach (DataGridViewRow row in DataGridViewCart.Rows) { var item = new TransactionItemAdd(); item.ItemID = (long)row.Cells[0].Value; item.Price = (int)row.Cells[3].Value; item.Quantity = (int)row.Cells[2].Value; item.Name = (string)row.Cells[1].Value; itemPurchase.Add(item); } var transaction = new TransactionAddField(); transaction.UserUsername = TextBoxTransactionUserUsername.Text; transaction.Items = itemPurchase; transaction.AuthUsername = AuthUsername; transaction.AuthPassword = AuthPassword; try { var result = await $"{Constant.URL}/api/transaction" .PostJsonAsync(transaction); } catch (FlurlHttpException ex) { var errorResp = await ex.Call.Response.GetStringAsync(); MessageBox.Show($"{ex.Message}\n{errorResp}"); } DataGridViewCart.Rows.Clear(); MessageBox.Show("Transaction success"); }