/* get/set active role id */ UUID IGroupSelectInterface.this[UGUI requestingAgent, UGI group, UGUI principal] { get { UUID id; if (!ActiveGroup.TryGetValue(requestingAgent, group, principal, out id)) { id = UUID.Zero; } return(id); } set { using (var conn = new NpgsqlConnection(m_ConnectionString)) { conn.Open(); using (var cmd = new NpgsqlCommand("UPDATE groupmemberships SET \"SelectedRoleID\"=@roleid WHERE \"PrincipalID\" = @principalid AND \"GroupID\" = @groupid", conn)) { cmd.Parameters.AddParameter("@roleid", value); cmd.Parameters.AddParameter("@groupid", group.ID); cmd.Parameters.AddParameter("@principalid", principal.ID); cmd.ExecuteNonQuery(); } } } }
UUID IGroupSelectInterface.this[UGUI requestingAgent, UGI group, UGUI principal] { get { UUID id; if (!ActiveGroup.TryGetValue(requestingAgent, group, principal, out id)) { throw new KeyNotFoundException(); } return(id); } set { MemoryGroupInfo info; MemoryGroupMember mem; if (m_Groups.TryGetValue(group.ID, out info) && info.Members.TryGetValue(principal, out mem)) { mem.ActiveRoleID = value; } else { throw new KeyNotFoundException(); } } }
UGI IGroupSelectInterface.this[UGUI requestingAgent, UGUI principal] { get { UGI ugi; if (!ActiveGroup.TryGetValue(requestingAgent, principal, out ugi)) { throw new KeyNotFoundException(); } return(ugi); } set { m_ActiveGroups[principal] = value.ID; } }
bool IActiveGroupMembershipInterface.TryGetValue(UGUI requestingAgent, UGUI principal, out GroupActiveMembership gam) { gam = default(GroupActiveMembership); UGI activegroup; if (!ActiveGroup.TryGetValue(requestingAgent, principal, out activegroup)) { return(false); } GroupInfo group; if (!Groups.TryGetValue(requestingAgent, activegroup, out group)) { return(false); } GroupMember gmem; if (!Members.TryGetValue(requestingAgent, activegroup, principal, out gmem)) { return(false); } GroupRole role; if (!Roles.TryGetValue(requestingAgent, activegroup, gmem.SelectedRoleID, out role)) { return(false); } gam = new GroupActiveMembership { Group = group.ID, SelectedRoleID = gmem.SelectedRoleID, User = gmem.Principal }; return(true); }