using System; using System.Data; using MySql.Data.MySqlClient; using DuckEmulator.HabboHotel.Inside.Storage.MySql.Database.Interfaces; namespace DuckEmulator.HabboHotel.Inside.Storage.MySql.Database.SessionDetails { internal class QueryAdapter : IRegularQueryAdapter { protected DatabaseClient client; protected MySqlCommand command; internal QueryAdapter(DatabaseClient client) { this.client = client; } #region IRegularQueryAdapter Members public void addParameter(string parameterName, object val) { command.Parameters.AddWithValue("@" + parameterName, val); } public bool findsResult() { bool flag = false; try { using (var adapter = new MySqlDataAdapter(command)) { var dataSet = new DataSet(); adapter.Fill(dataSet); flag = dataSet.Tables[0].Rows.Count != 0; } } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(exception, command.CommandText); } return flag; } public int getInteger() { int result = 0; try { object obj = command.ExecuteScalar(); if (obj != null) { int.TryParse(obj.ToString(), out result); } } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(ex, command.CommandText); } return result; } public DataRow getRow() { DataRow dataRow = new DataTable().NewRow(); try { var dataSet = new DataSet(); using (var adapter = new MySqlDataAdapter(command)) { adapter.Fill(dataSet); } dataRow = dataSet.Tables[0].Rows[0]; } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(exception, command.CommandText); } return dataRow; } public string getString() { string str = ""; try { str = command.ExecuteScalar().ToString(); } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(exception, command.CommandText); } return str; } public DataTable getTable() { var dataTable = new DataTable(); try { using (var adapter = new MySqlDataAdapter(command)) { adapter.Fill(dataTable); } } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(exception, command.CommandText); } return dataTable; } public void runFastQuery(string query) { setQuery(query); runQuery(); } public void setQuery(string query) { command.Parameters.Clear(); command.CommandText = query; } #endregion public long insertQuery() { long lastInsertedId = 0L; try { command.ExecuteScalar(); lastInsertedId = command.LastInsertedId; } catch (Exception ex) { Console.WriteLine(ex.Message); //Out.writeSqlError(exception, command.CommandText); } return lastInsertedId; } public bool isDisposed() { return client.getConnectionState() != ConnectionState.Open; } public void runQuery() { try { command.ExecuteNonQuery(); } catch (Exception exception) { Console.WriteLine(exception.Message + "\n(^^" + command.CommandText + "^^)"); } } } }