/// <summary>
        /// General format for running a insertion query on the guacamole database
        /// </summary>
        /// <returns><c>true</c>, if the values were inserted, <c>false</c> otherwise.</returns>
        /// <param name="queryString">Query string.</param>
        /// <param name="argNames">Argument names.</param>
        /// <param name="args">Arguments.</param>
        /// <param name="excepts">Exceptions.</param>
        private bool InsertQuery(string queryString, Queue <string> argNames, Queue <string> args, ref List <Exception> excepts)
        {
            const string exceptMessage = "The database arguments and argument names are not the same size.";

            //Validate if the arguments and names are the correct amount
            if (args.Count != argNames.Count)
            {
                excepts.Add(new GuacamoleDatabaseException(exceptMessage));
                return(false);
            }

            //Make a deep copy of the queues to ensure data consistancy
            Queue <String> copiedArgNames = new Queue <String>(argNames.ToArray());
            Queue <String> copiedArgs     = new Queue <String>(args.ToArray());

            try
            {
                using (GuacamoleDatabaseConnector gdbc = new GuacamoleDatabaseConnector(ref excepts))
                {
                    using (MySqlCommand query = new MySqlCommand(queryString, gdbc.getConnection()))
                    {
                        query.Prepare();

                        //Add the agrument names and values NOTE: ORDER MATTERS
                        while (copiedArgs.Count > 0 && copiedArgNames.Count > 0)
                        {
                            Console.Error.Write("Name = " + copiedArgNames.Peek() + " Arg = " + copiedArgs.Peek() + ".\n\n");
                            query.Parameters.AddWithValue(copiedArgNames.Dequeue(), copiedArgs.Dequeue());
                        }
                        return(query.ExecuteNonQuery() > 0);
                    }
                }
            }
            catch (Exception e)
            {
                excepts.Add(e);
                return(false);
            }
        }
        /// <summary>
        /// General format for running a search query on the guacamole database
        /// </summary>
        /// <returns><c>true</c>, if field was found, <c>false</c> otherwise.</returns>
        /// <param name="queryString">Query string.</param>
        /// <param name="arg">Argument.</param>
        /// <param name="excepts">Exceptions.</param>
        private Queue <string> SearchQuery(string queryString, string arg, ref List <Exception> excepts)
        {
            //Stores the Values found from the database
            Queue <string> queryResults = new Queue <string>();

            try
            {
                using (GuacamoleDatabaseConnector gdbc = new GuacamoleDatabaseConnector(ref excepts))
                {
                    using (MySqlCommand query = new MySqlCommand(queryString, gdbc.getConnection()))
                    {
                        query.Prepare();

                        //Add the agruments given if found
                        if (arg != null)
                        {
                            query.Parameters.AddWithValue("@input", arg);
                        }

                        //Collect the query result column
                        using (MySqlDataReader reader = query.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                queryResults.Enqueue((string)reader[0]);
                            }
                        }
                        return(queryResults);
                    }
                }
            }
            catch (Exception e)
            {
                excepts.Add(e);
                return(queryResults);
            }
        }