Core/Misc: Misc cleanups and changing of fields

This commit is contained in:
hondacrx
2018-05-13 20:26:05 -04:00
parent 868c67c8f0
commit 7d4c0b7634
38 changed files with 269 additions and 244 deletions
@@ -74,9 +74,9 @@ namespace Framework.Configuration
return (T)Convert.ChangeType(temp, type);
}
public static List<string> GetKeysByString(string name)
public static IEnumerable<string> GetKeysByString(string name)
{
return _configList.Where(p => p.Key.Contains(name)).Select(p => p.Key).ToList();
return _configList.Where(p => p.Key.Contains(name)).Select(p => p.Key);
}
static Dictionary<string, string> _configList = new Dictionary<string, string>();
+37 -37
View File
@@ -202,50 +202,53 @@ namespace Framework.Database
public async Task<SQLQueryHolder<R>> DelayQueryHolder<R>(SQLQueryHolder<R> holder)
{
string query = "";
try
return await Task.Run(() =>
{
using (var Connection = _connectionInfo.GetConnection())
string query = "";
try
{
await Connection.OpenAsync();
foreach (var pair in holder.m_queries)
using (var Connection = _connectionInfo.GetConnection())
{
List<object[]> rows = new List<object[]>();
using (MySqlCommand cmd = Connection.CreateCommand())
Connection.OpenAsync();
foreach (var pair in holder.m_queries)
{
cmd.CommandText = pair.Value.stmt.CommandText;
foreach (var parameter in pair.Value.stmt.Parameters)
cmd.Parameters.AddWithValue("@" + parameter.Key, parameter.Value);
query = cmd.CommandText;
using (var reader = await cmd.ExecuteReaderAsync())
List<object[]> rows = new List<object[]>();
using (MySqlCommand cmd = Connection.CreateCommand())
{
if (reader.HasRows)
{
while (await reader.ReadAsync())
{
var row = new object[reader.FieldCount];
cmd.CommandText = pair.Value.stmt.CommandText;
foreach (var parameter in pair.Value.stmt.Parameters)
cmd.Parameters.AddWithValue("@" + parameter.Key, parameter.Value);
reader.GetValues(row);
rows.Add(row);
query = cmd.CommandText;
using (var reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
var row = new object[reader.FieldCount];
reader.GetValues(row);
rows.Add(row);
}
}
}
}
holder.SetResult(pair.Key, new SQLResult(rows));
}
holder.SetResult(pair.Key, new SQLResult(rows));
}
}
return holder;
}
catch (MySqlException ex)
{
HandleMySQLException(ex, query);
return holder;
}
return holder;
}
catch (MySqlException ex)
{
HandleMySQLException(ex, query);
return holder;
}
});
}
public void LoadPreparedStatements()
@@ -359,11 +362,8 @@ namespace Framework.Database
MySqlErrorCode HandleMySQLException(MySqlException ex, string query = "")
{
MySqlErrorCode code = (MySqlErrorCode)ex.Number;
if (ex.InnerException != null)
{
if (ex.InnerException is MySqlException)
code = (MySqlErrorCode)((MySqlException)ex.InnerException).Number;
}
if (ex.InnerException is MySqlException)
code = (MySqlErrorCode)((MySqlException)ex.InnerException).Number;
switch (code)
{
+2 -1
View File
@@ -86,8 +86,9 @@ namespace Framework.Networking
AddNewSockets();
foreach (var socket in _Sockets.ToList())
for (var i =0; i < _Sockets.Count; ++i)
{
TSocketType socket = _Sockets[i];
if (!socket.Update())
{
if (socket.IsOpen())
+1 -1
View File
@@ -310,7 +310,7 @@ public class RealmManager : Singleton<RealmManager>
return BattlenetRpcErrorCode.UtilServerUnknownRealm;
}
public List<Realm> GetRealms() { return _realms.Values.ToList(); }
public ICollection<Realm> GetRealms() { return _realms.Values; }
List<string> GetSubRegions() { return _subRegions; }
ConcurrentDictionary<RealmHandle, Realm> _realms = new ConcurrentDictionary<RealmHandle, Realm>();