From 18ca978b81fb504b53bddadf292319b85807a299 Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 29 Dec 2009 18:31:27 +0000 Subject: Give the new user tables the once-over. Strip the current set of methods from IUserAccountService, we need to define what goes in there. Change the handler to the generic handler. Adjust migrations, add index --- OpenSim/Data/MySQL/MySQLUserAccountData.cs | 139 +---------------------------- 1 file changed, 2 insertions(+), 137 deletions(-) (limited to 'OpenSim/Data/MySQL/MySQLUserAccountData.cs') diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs index d48144d..9624d79 100644 --- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs +++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs @@ -35,146 +35,11 @@ using MySql.Data.MySqlClient; namespace OpenSim.Data.MySQL { - public class MySqlUserAccountData : MySqlFramework, IUserAccountData + public class MySqlUserAccountData : MySQLGenericTableHandler, IUserAccountData { - private string m_Realm; - private List m_ColumnNames = null; -// private int m_LastExpire = 0; - public MySqlUserAccountData(string connectionString, string realm) - : base(connectionString) - { - m_Realm = realm; - - Migration m = new Migration(m_Connection, GetType().Assembly, "UserStore"); - m.Update(); - } - - public List Query(UUID principalID, UUID scopeID, string query) - { - return null; - } - - public UserAccountData Get(UUID principalID, UUID scopeID) - { - UserAccountData ret = new UserAccountData(); - ret.Data = new Dictionary(); - - string command = "select * from `"+m_Realm+"` where UUID = ?principalID"; - if (scopeID != UUID.Zero) - command += " and ScopeID = ?scopeID"; - - MySqlCommand cmd = new MySqlCommand(command); - - cmd.Parameters.AddWithValue("?principalID", principalID.ToString()); - cmd.Parameters.AddWithValue("?scopeID", scopeID.ToString()); - - IDataReader result = ExecuteReader(cmd); - - if (result.Read()) - { - ret.PrincipalID = principalID; - UUID scope; - UUID.TryParse(result["ScopeID"].ToString(), out scope); - ret.ScopeID = scope; - - if (m_ColumnNames == null) - { - m_ColumnNames = new List(); - - DataTable schemaTable = result.GetSchemaTable(); - foreach (DataRow row in schemaTable.Rows) - m_ColumnNames.Add(row["ColumnName"].ToString()); - } - - foreach (string s in m_ColumnNames) - { - if (s == "UUID") - continue; - if (s == "ScopeID") - continue; - - ret.Data[s] = result[s].ToString(); - } - - result.Close(); - CloseReaderCommand(cmd); - - return ret; - } - - result.Close(); - CloseReaderCommand(cmd); - - return null; - } - - public bool Store(UserAccountData data) - { - if (data.Data.ContainsKey("UUID")) - data.Data.Remove("UUID"); - if (data.Data.ContainsKey("ScopeID")) - data.Data.Remove("ScopeID"); - - string[] fields = new List(data.Data.Keys).ToArray(); - - MySqlCommand cmd = new MySqlCommand(); - - string update = "update `"+m_Realm+"` set "; - bool first = true; - foreach (string field in fields) - { - if (!first) - update += ", "; - update += "`" + field + "` = ?"+field; - - first = false; - - cmd.Parameters.AddWithValue("?"+field, data.Data[field]); - } - - update += " where UUID = ?principalID"; - - if (data.ScopeID != UUID.Zero) - update += " and ScopeID = ?scopeID"; - - cmd.CommandText = update; - cmd.Parameters.AddWithValue("?principalID", data.PrincipalID.ToString()); - cmd.Parameters.AddWithValue("?scopeID", data.ScopeID.ToString()); - - if (ExecuteNonQuery(cmd) < 1) - { - string insert = "insert into `" + m_Realm + "` (`UUID`, `ScopeID`, `" + - String.Join("`, `", fields) + - "`) values (?principalID, ?scopeID, ?" + String.Join(", ?", fields) + ")"; - - cmd.CommandText = insert; - - if (ExecuteNonQuery(cmd) < 1) - { - cmd.Dispose(); - return false; - } - } - - cmd.Dispose(); - - return true; - } - - public bool SetDataItem(UUID principalID, string item, string value) + : base(connectionString, realm, "UserAccount") { - MySqlCommand cmd = new MySqlCommand("update `" + m_Realm + - "` set `" + item + "` = ?" + item + " where UUID = ?UUID"); - - - cmd.Parameters.AddWithValue("?"+item, value); - cmd.Parameters.AddWithValue("?UUID", principalID.ToString()); - - if (ExecuteNonQuery(cmd) > 0) - return true; - - return false; } } } -- cgit v1.1