예제 #1
0
        /// <summary>
        ///     Fetches an onsite transaction from database given a paramref name="transactionID"
        /// </summary>
        /// <param name="transactionID">
        ///     Passes a transaction id as parameter
        /// </param>
        /// <returns>
        ///     <para>Returns an object of onsitetransaction</para>
        ///     <para>Type: OnsiteTransactionModel</para>
        /// </returns>
        public async Task <OnsiteTransactionModel> FetchOnsiteTransaction(int transactionID)
        {
            OnsiteTransactionModel onsiteTransactionModel = null;

            using (MySqlConnection connection = new MySqlConnection(DbConnString.DBCONN_STRING))
            {
                await connection.OpenAsync();

                string       queryString = "SELECT * FROM onsite_transaction_table WHERE transaction_id=@transactionID";
                MySqlCommand command     = new MySqlCommand(queryString, connection);
                command.Parameters.AddWithValue("@transactionID", transactionID);
                MySqlDataReader reader = (MySqlDataReader)await command.ExecuteReaderAsync();

                while (await reader.ReadAsync())
                {
                    onsiteTransactionModel = new OnsiteTransactionModel()
                    {
                        TransactionID = int.Parse(reader["transaction_id"].ToString()),
                        //Generate Customer Model
                        TotalSale = int.Parse(reader["total_sale"].ToString()),
                        OnsiteProductTransactionList = await OnsiteProductsTransactionRepository.SingleInstance.FetchTransactionsGivenByIDAsync(int.Parse(reader["transaction_id"].ToString()))
                    };
                }
            }
            return(onsiteTransactionModel);
        }
예제 #2
0
        protected async void BtnConfirmCartOrder_Click(object sender, EventArgs e)
        {
            UpdateProgress2.Visible = true;
            if (Cart.GetCartItems().Count == 0)
            {
                BuildSweetAlert("#ffcccb", AlertStatus.error, "Error Processing Request", "Cart has no items");
                return;
            }
            var onSiteTransaction = new OnsiteTransactionModel
            {
                Customer  = null,
                TotalSale = Cart.CalculateTotalSales()
            };
            var connection = await OnsiteTransactionRepository.SingleInstance.InsertNewTransaction(onSiteTransaction);

            var transactionID = await OnsiteTransactionRepository.SingleInstance.FetchLastInsertID(connection);

            var onsiteProducts = Cart.ListOfOnsiteProducts(transactionID);

            BuildSale(onsiteProducts, transactionID);
            BuildNotification(onsiteProducts);
            BuildSweetAlert("#90EE90", AlertStatus.success, "Successfully Added Sales", null);

            Cart.ClearCartItems();
            LoadCart();
            LoadSales();
            LoadProducts();
            UpdateProgress2.Visible = false;
        }
예제 #3
0
        /// <summary>
        ///     <para>
        ///         <br>Inserts a new transaction object inside the database</br>
        ///         <br>and returns a MySqlConnection to be used on last_insert_id()</br>
        ///         <br>Mysql function due to the reason of a single connection is required</br>
        ///     </para>
        /// </summary>
        /// <param name="onsiteTransaction">
        ///     Passes an onsitetransaction model async parameter
        /// </param>
        /// <returns>
        ///     <para>Returns the used MysqlConnection</para>
        ///     <para>Type: MySqlConnection</para>
        /// </returns>
        public async Task <MySqlConnection> InsertNewTransaction(OnsiteTransactionModel onsiteTransaction)
        {
            MySqlConnection connection = new MySqlConnection(DbConnString.DBCONN_STRING);
            await connection.OpenAsync();

            string       queryString = "INSERT INTO onsite_transaction_table(total_sale)VALUES(@totalSale)";
            MySqlCommand command     = new MySqlCommand(queryString, connection);

            command.Parameters.AddWithValue("@totalSale", onsiteTransaction.TotalSale);
            await command.ExecuteNonQueryAsync();

            return(connection);
        }