public ExtendedGroupRecord GetGroupRecord(string RequestingAgentID, UUID GroupID, string GroupName) { if (m_log.IsDebugEnabled) { m_log.DebugFormat("{0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); } string url = string.Empty; string name = string.Empty; if (IsLocal(GroupID, out url, out name)) { return(m_LocalGroupsConnector.GetGroupRecord(AgentUUI(RequestingAgentID), GroupID, GroupName)); } else if (url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, GroupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { ExtendedGroupRecord grec = m_CacheWrapper.GetGroupRecord(RequestingAgentID, GroupID, GroupName, delegate { return(c.GetGroupRecord(AgentUUIForOutside(RequestingAgentID), GroupID, GroupName, accessToken)); }); if (grec != null) { ImportForeigner(grec.FounderUUI); } return(grec); } } return(null); }
/// <summary> /// Not really needed, but does confirm that the group exists. /// </summary> public bool StartGroupChatSession(UUID agentID, UUID groupID) { if (m_debugEnabled) { m_log.DebugFormat("[Groups.Messaging]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); } GroupRecord groupInfo = m_groupData.GetGroupRecord(agentID.ToString(), groupID, null); if (groupInfo != null) { return(true); } else { return(false); } }
public ExtendedGroupRecord GetGroupRecord(string RequestingAgentID, UUID GroupID, string GroupName) { string url = string.Empty; string name = string.Empty; if (IsLocal(GroupID, out url, out name)) { return(m_LocalGroupsConnector.GetGroupRecord(AgentUUI(RequestingAgentID), GroupID, GroupName)); } else if (url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, GroupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { ExtendedGroupRecord grec = m_CacheWrapper.GetGroupRecord(RequestingAgentID, GroupID, GroupName, delegate { return(c.GetGroupRecord(AgentUUIForOutside(RequestingAgentID), GroupID, GroupName, accessToken)); }); if (grec != null) { ImportForeigner(grec.FounderUUI); } return(grec); } } return(null); }
public void EnsureGroupChatIsStarted(UUID groupID) { ChatSession session = m_groupData.GetSession(groupID); if (session == null) { GroupRecord record = m_groupData.GetGroupRecord(UUID.Zero, groupID, ""); UUID ownerID = record.FounderID; //Requires that the founder is still in the group List <ChatSessionMember> members = (from gmd in m_groupData.GetGroupMembers(ownerID, groupID) where (gmd.AgentPowers & (ulong)GroupPowers.JoinChat) == (ulong)GroupPowers.JoinChat select new ChatSessionMember { AvatarKey = gmd.AgentID }).ToList(); m_groupData.CreateSession(new ChatSession { Members = members, Name = record.GroupName, SessionID = groupID }); } }