public static bool Remove(BOL.Terminal_Transaction.objTerminalTransaction terminal_transaction)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "UPDATE " +
                                "terminal_transaction " +
                                "SET " +
                                "priority_level = priority_level - 1 " +
                                "WHERE " +
                                "terminal_id = @terminal_id AND priority_level > @priority_level";

                statement += ";DELETE FROM " +
                             "terminal_transaction " +
                             "WHERE " +
                             "id = @id";

                conn.Execute(statement,
                             new
                {
                    terminal_id    = terminal_transaction.terminal_id,
                    priority_level = terminal_transaction.priority_level,
                    id             = terminal_transaction.id
                });

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
        public static bool Move_Down(BOL.Terminal_Transaction.objTerminalTransaction terminal_transaction)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TT.*, T.* " +
                                "FROM " +
                                "terminal_transaction TT " +
                                "INNER JOIN transaction T ON TT.transaction_id = T.id " +
                                "WHERE " +
                                "TT.terminal_id = @terminal_id AND priority_level > @priority_level AND TT.id != @id " +
                                "ORDER BY " +
                                "TT.priority_level ASC " +
                                "LIMIT 1";

                BOL.Terminal_Transaction.objTerminalTransaction previous_termninaltransaction = conn.Query <BOL.Terminal_Transaction.objTerminalTransaction, BOL.Transaction.objTransaction, BOL.Terminal_Transaction.objTerminalTransaction>(statement,
                                                                                                                                                                                                                                              (TT, T) => { TT.objTransaction = T; return(TT); },
                                                                                                                                                                                                                                              new
                {
                    terminal_id    = terminal_transaction.terminal_id,
                    priority_level = terminal_transaction.priority_level,
                    id             = terminal_transaction.id
                }).SingleOrDefault();

                if (previous_termninaltransaction != null)
                {
                    statement = "UPDATE " +
                                "terminal_transaction " +
                                "SET " +
                                "priority_level = @priority_down " +
                                "WHERE " +
                                "id = @previous_id";
                    statement += ";UPDATE " +
                                 "terminal_transaction " +
                                 "SET " +
                                 "priority_level = @priority_up " +
                                 "WHERE " +
                                 "id = @current_id";


                    conn.Execute(statement,
                                 new
                    {
                        priority_down = terminal_transaction.priority_level,
                        previous_id   = previous_termninaltransaction.id,
                        priority_up   = previous_termninaltransaction.priority_level,
                        current_id    = terminal_transaction.id
                    });
                }

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }