Dictionary <UUID, bool> IExperiencePermissionsInterface.this[UUI agent] { get { var result = new Dictionary <UUID, bool>(); using (var conn = new MySqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new MySqlCommand("SELECT ExperienceID,User,IsAllowed FROM experienceusers WHERE User LIKE @user", conn)) { cmd.Parameters.AddParameter("@user", agent.ID.ToString() + "%"); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { UUI ret = reader.GetUUI("User"); if (ret.EqualsGrid(agent)) { result.Add(reader.GetUUID("ExperienceID"), reader.GetBool("IsAllowed")); } } } } } return(result); } }
bool IExperiencePermissionsInterface.TryGetValue(UUID experienceID, UUI agent, out bool allowed) { using (var conn = new MySqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new MySqlCommand("SELECT User,IsAllowed FROM experienceusers WHERE ExperienceID = @experienceid AND User LIKE @user", conn)) { cmd.Parameters.AddParameter("@experienceid", experienceID); cmd.Parameters.AddParameter("@user", agent.ID.ToString() + "%"); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { UUI ret = reader.GetUUI("User"); if (ret.EqualsGrid(agent)) { allowed = reader.GetBool("IsAllowed"); return(true); } } } } } allowed = false; return(false); }
List <uint> IEstateOwnerServiceInterface.this[UUI owner] { get { var estates = new List <uint>(); using (var conn = new MySqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new MySqlCommand("SELECT ID, Owner FROM estates WHERE Owner LIKE @agentid", conn)) { cmd.Parameters.AddParameter("@id", owner.ID); cmd.Parameters.AddParameter("@agentid", owner.ID.ToString() + "%"); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { UUI uui = reader.GetUUI("Owner"); if (uui.EqualsGrid(owner)) { estates.Add(reader.GetUInt32("ID")); } } return(estates); } } } } }
bool IEstateBanServiceInterface.this[uint estateID, UUI agent] { get { using (var conn = new MySqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new MySqlCommand("SELECT UserID FROM estate_bans WHERE EstateID = @estateid AND UserID LIKE @agentid", conn)) { cmd.Parameters.AddParameter("@estateid", estateID); cmd.Parameters.AddParameter("@agentid", agent.ID.ToString() + "%"); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { UUI uui = reader.GetUUI("UserID"); if (uui.EqualsGrid(agent)) { return(true); } } return(false); } } } } set { string query = value ? "REPLACE INTO estate_bans (EstateID, UserID) VALUES (@estateid, @userid)" : "DELETE FROM estate_bans WHERE EstateID = @estateid AND UserID LIKE @userid"; using (var conn = new MySqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new MySqlCommand(query, conn)) { cmd.Parameters.AddParameter("@estateid", estateID); if (value) { cmd.Parameters.AddParameter("@userid", agent); } else { cmd.Parameters.AddParameter("@userid", agent.ID.ToString() + "%"); } if (cmd.ExecuteNonQuery() < 1 && value) { throw new EstateUpdateFailedException(); } } } } }