private UrlRouteAgent MatchAgent(HttpRequest request) { string url = request.GetSourceBaseUrl(); UrlRouteAgent agent = new UrlRouteAgent(); agent.Url = url; agent.Version = this.Version; var urls = mMatchRoutes; agent.Routes = urls; for (int i = 0; i < urls.Count; i++) { var routeItem = urls[i]; if (System.Text.RegularExpressions.Regex.IsMatch(url, routeItem.UrlPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { if (routeItem.Servers.Length == 0 && routeItem.ApiLoader) { continue; } if (string.IsNullOrEmpty(routeItem.Host)) { agent.UrlRoute = routeItem; return(agent); } else { if (string.Compare(routeItem.Host, request.Host, true) == 0) { agent.UrlRoute = routeItem; return(agent); } } } } agent.UrlRoute = Default; return(agent); }
public void SetAgent(ulong url, UrlRouteAgent agent) { ConcurrentDictionary <ulong, UrlRouteAgent> keyValuePairs = mDictionarys[(int)(url % (uint)mDictionarys.Count)]; keyValuePairs[url] = agent; }
public void SetAgent(string url, UrlRouteAgent agent) { ConcurrentDictionary <string, UrlRouteAgent> keyValuePairs = mDictionarys[(int)(GetUrlIndex(url) % (uint)mDictionarys.Count)]; keyValuePairs[url] = agent; }