Example #1
0
        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());
        }
Example #2
0
        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");
        }