public List <GridRegion> GetRegionsByURI(UUID scopeID, RegionURI uri, int maxNumber) { if (!uri.IsValid) { return(null); } List <GridRegion> rinfo = m_LocalGridService.GetRegionsByURI(scopeID, uri, maxNumber); //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Local GetRegionsByName {0} found {1} regions", name, rinfo.Count); if (m_RemoteGridService == null || !uri.IsLocalGrid) { return(rinfo); } List <GridRegion> grinfo = null; if (!uri.HasRegionName && (rinfo == null || rinfo.Count == 0)) { List <GridRegion> grinfos = m_RemoteGridService.GetDefaultRegions(scopeID); if (grinfos == null || grinfos.Count == 0) { m_log.Info("[REMOTE GRID CONNECTOR] returned no default regions"); } else { m_log.InfoFormat("[REMOTE GRID CONNECTOR] returned default regions {0}, ...", grinfos[0].RegionName); // only return first grinfo = new List <GridRegion>() { grinfos[0] }; } } else { grinfo = m_RemoteGridService.GetRegionsByName(scopeID, uri.RegionName, maxNumber); } if (grinfo != null) { //m_log.DebugFormat("[REMOTE GRID CONNECTOR]: Remote GetRegionsByName {0} found {1} regions", name, grinfo.Count); foreach (GridRegion r in grinfo) { m_RegionInfoCache.Cache(r); if (rinfo.Find(delegate(GridRegion gr) { return(gr.RegionID == r.RegionID); }) == null) { rinfo.Add(r); } } } return(rinfo); }