public List <RegionData> Get(string regionName, UUID scopeID) { if (Instance != this) { return(Instance.Get(regionName, scopeID)); } List <RegionData> ret = new List <RegionData>(); foreach (RegionData r in m_regionData.Values) { if (regionName.Contains("%")) { string cleanname = regionName.Replace("%", ""); m_log.DebugFormat("[Null Region Data]: comparing {0} to {1}", cleanname.ToLower(), r.RegionName.ToLower()); if (r.RegionName.ToLower().Contains(cleanname.ToLower())) { ret.Add(r); } } else { if (r.RegionName.ToLower() == regionName.ToLower()) { ret.Add(r); } } } if (ret.Count > 0) { return(ret); } return(null); }
public List <RegionData> Get(string regionName, UUID scopeID) { if (m_useStaticInstance && Instance != this) { return(Instance.Get(regionName, scopeID)); } // m_log.DebugFormat("[NULL REGION DATA]: Getting region {0}, scope {1}", regionName, scopeID); string cleanName = regionName.ToLower(); // Handle SQL wildcards const string wildcard = "%"; bool wildcardPrefix = false; bool wildcardSuffix = false; if (cleanName.Equals(wildcard)) { wildcardPrefix = wildcardSuffix = true; cleanName = string.Empty; } else { if (cleanName.StartsWith(wildcard)) { wildcardPrefix = true; cleanName = cleanName.Substring(1); } if (regionName.EndsWith(wildcard)) { wildcardSuffix = true; cleanName = cleanName.Remove(cleanName.Length - 1); } } Matcher queryMatch; if (wildcardPrefix && wildcardSuffix) { queryMatch = delegate(string s) { return(s.Contains(cleanName)); } } ; else if (wildcardSuffix) { queryMatch = delegate(string s) { return(s.StartsWith(cleanName)); } } ; else if (wildcardPrefix) { queryMatch = delegate(string s) { return(s.EndsWith(cleanName)); } } ; else { queryMatch = delegate(string s) { return(s.Equals(cleanName)); } }; // Find region data List <RegionData> ret = new List <RegionData>(); lock (m_regionData) { foreach (RegionData r in m_regionData.Values) { // m_log.DebugFormat("[NULL REGION DATA]: comparing {0} to {1}", cleanName, r.RegionName.ToLower()); if (queryMatch(r.RegionName.ToLower())) { ret.Add(r); } } } if (ret.Count > 0) { return(ret); } return(null); }