public PyDataType GetCharacterSelectionInfo(int characterID, int accountID) { MySqlConnection connection = null; MySqlDataReader reader = Database.PrepareQuery( ref connection, "SELECT " + " itemName AS shortName,bloodlineID,gender,bounty,chrInformation.corporationID,allianceID,title,startDateTime,createDateTime," + " securityRating,chrInformation.balance,chrInformation.stationID,solarSystemID,constellationID,regionID," + " petitionMessage,logonMinutes,tickerName" + " FROM chrInformation " + " LEFT JOIN eveNames ON characterID = itemID"+ " LEFT JOIN corporation USING (corporationID)"+ " LEFT JOIN bloodlineTypes USING (typeID)"+ " WHERE characterID=@characterID AND accountID = @accountID", new Dictionary <string, object>() { { "@characterID", characterID }, { "@accountID", accountID } } ); using (connection) using (reader) { return(Rowset.FromMySqlDataReader(reader)); } }
public PyDataType GetCharacterList(int accountID) { MySqlConnection connection = null; MySqlDataReader reader = Database.PrepareQuery(ref connection, "SELECT" + " characterID, itemName AS characterName, 0 as deletePrepareDateTime," + " gender, accessoryID, beardID, costumeID, decoID, eyebrowsID, eyesID, hairID," + " lipstickID, makeupID, skinID, backgroundID, lightID," + " headRotation1, headRotation2, headRotation3, eyeRotation1," + " eyeRotation2, eyeRotation3, camPos1, camPos2, camPos3," + " morph1e, morph1n, morph1s, morph1w, morph2e, morph2n," + " morph2s, morph2w, morph3e, morph3n, morph3s, morph3w," + " morph4e, morph4n, morph4s, morph4w" + " FROM chrInformation " + " LEFT JOIN eveNames ON characterID = itemID"+ " WHERE accountID = @accountID", new Dictionary <string, object>() { { "@accountID", accountID } } ); using (connection) using (reader) { return(Rowset.FromMySqlDataReader(reader)); } }
/// <summary> /// Runs one prepared query with the given values as parameters and returns a Rowset representing the result /// </summary> /// <param name="query">The prepared query</param> /// <param name="values">The key-value pair of values to use when running the query</param> /// <returns>The Rowset object representing the result</returns> public Rowset PrepareRowsetQuery(string query, Dictionary <string, object> values) { try { MySqlConnection connection = null; // create the correct command MySqlCommand command = this.PrepareQuery(ref connection, query); // add values foreach (KeyValuePair <string, object> pair in values) { command.Parameters.AddWithValue(pair.Key, pair.Value); } MySqlDataReader reader = command.ExecuteReader(); using (connection) using (reader) { // run the prepared statement return(Rowset.FromMySqlDataReader(reader)); } } catch (Exception e) { Log.Error($"MySQL error: {e.Message}"); throw; } }
public void Load(string service, string method, string query, CacheObjectType type) { Log.Debug($"Loading cache data for {service}::{method} of type {type}"); // if the cache already exists do not generate it again! if (this.Exists(service, method) == true) { return; } try { MySqlConnection connection = null; MySqlDataReader reader = Database.Query(ref connection, query); PyDataType cacheObject = null; using (connection) using (reader) { switch (type) { case CacheObjectType.Rowset: cacheObject = Rowset.FromMySqlDataReader(reader); break; case CacheObjectType.CRowset: cacheObject = CRowset.FromMySqlDataReader(reader); break; case CacheObjectType.TupleSet: cacheObject = TupleSet.FromMySqlDataReader(reader); break; case CacheObjectType.PackedRowList: cacheObject = PyPackedRowList.FromMySqlDataReader(reader); break; case CacheObjectType.IntIntDict: cacheObject = IntIntDictionary.FromMySqlDataReader(reader); break; case CacheObjectType.IndexRowset: cacheObject = IndexRowset.FromMySqlDataReader(reader, 0); break; } StoreCall(service, method, cacheObject, DateTime.UtcNow.ToFileTimeUtc()); } } catch (Exception) { Log.Error($"Cannot generate cache data for {service}::{method}"); throw; } }
public PyDataType GetKeyMap() { MySqlConnection connection = null; MySqlDataReader reader = Database.Query(ref connection, "SELECT accountKey as keyID, accountType as keyType, accountName as keyName, description FROM market_keyMap" ); using (connection) using (reader) { return(Rowset.FromMySqlDataReader(reader)); } }
/// <summary> /// Helper method that queries the cached object and converts it to the proper type to be stored /// </summary> /// <param name="query">The query to run</param> /// <param name="type">The type of object to store</param> /// <returns>The final object to be used by the cache</returns> private PyDataType QueryCacheObject(string query, CacheObjectType type) { MySqlConnection connection = null; MySqlDataReader reader = Database.Query(ref connection, query); using (connection) using (reader) { return(type switch { CacheObjectType.Rowset => Rowset.FromMySqlDataReader(Database, reader), CacheObjectType.CRowset => CRowset.FromMySqlDataReader(Database, reader), CacheObjectType.TupleSet => TupleSet.FromMySqlDataReader(Database, reader), CacheObjectType.PackedRowList => PyPackedRowList.FromMySqlDataReader(Database, reader), CacheObjectType.IntIntDict => IntIntDictionary.FromMySqlDataReader(reader), CacheObjectType.IndexRowset => IndexRowset.FromMySqlDataReader(Database, reader, 0), _ => null });
private void Load(string name, string query, CacheObjectType type) { Log.Debug($"Loading cache data for {name} of type {type}"); try { MySqlConnection connection = null; MySqlDataReader reader = Database.Query(ref connection, query); PyDataType cacheObject = null; using (connection) using (reader) { switch (type) { case CacheObjectType.Rowset: cacheObject = Rowset.FromMySqlDataReader(reader); break; case CacheObjectType.CRowset: cacheObject = CRowset.FromMySqlDataReader(reader); break; case CacheObjectType.TupleSet: cacheObject = TupleSet.FromMySqlDataReader(reader); break; case CacheObjectType.PackedRowList: cacheObject = PyPackedRowList.FromMySqlDataReader(reader); break; } Store(name, cacheObject, DateTime.Now.ToFileTimeUtc()); } } catch (Exception e) { Log.Error($"Cannot generate cache data for {name}"); throw; } }
/// <summary> /// Runs one prepared query with the given values as parameters and returns a CRowset representing the result /// </summary> /// <param name="query">The prepared query</param> /// <returns>The Rowset object representing the result</returns> public Rowset PrepareRowsetQuery(string query) { try { MySqlConnection connection = null; // create the correct command MySqlCommand command = this.PrepareQuery(ref connection, query); MySqlDataReader reader = command.ExecuteReader(); using (connection) using (reader) { // run the prepared statement return(Rowset.FromMySqlDataReader(reader)); } } catch (Exception e) { Log.Error($"MySQL error: {e.Message}"); throw; } }