/// <summary>
        /// Connect to database using connection request.
        /// </summary>
        /// <param name="databaseRequest">SQL request</param>
        private string Request(DatabaseRequest databaseRequest)
        {
            var connection = new MySqlConnection(connectionRequest);

            connection.Open();
            var result     = string.Empty;
            var parameters = Math.Clamp(databaseRequest.GetTableParamsAmount(), 0, int.MaxValue);

            var cmd = new MySqlCommand(databaseRequest.ToString(), connection);

            using (var reader = cmd.ExecuteReader())
            {
                if (!reader.HasRows)
                {
                    return(result);
                }
                while (reader.Read())
                {
                    for (int i = 0; i < parameters; i++)
                    {
                        try
                        {
                            result += reader[i];
                        }
                        catch (IndexOutOfRangeException)
                        {
                            break;
                        }
                    }
                }
            }
            connection.Close();
            return(result);
        }
 /// <summary>
 /// Make asynchronous request to the database.
 /// </summary>
 /// <param name="databaseRequest"></param>
 public async Task <string> MakeRequest(DatabaseRequest databaseRequest)
 {
     return(await Task.Factory.StartNew(() => Request(databaseRequest)));
 }
 /// <summary>
 /// Add/replace default request.
 /// </summary>
 /// <param name="keyword">Request keyword</param>
 /// <param name="request">Request holder</param>
 internal void AddDefaultRequest(string keyword, DatabaseRequest request)
 {
     defaultRequests[keyword] = request;
 }