public static bool TryIdentify(this IList <IUserAgentServicePlugin> plugins, string homeURI, out UserAgentServiceInterface userAgentService) { userAgentService = null; string[] handlerType; try { handlerType = ServicePluginHelo.HeloRequest_HandleType(homeURI); } catch { return(false); } foreach (var service in plugins) { if (handlerType.Contains(service.Name)) { userAgentService = service.Instantiate(homeURI); break; } } return(userAgentService != null); }
public bool TryGetFriendsService(UGUI agent, out FriendsServiceInterface friendsService) { friendsService = null; if (agent.HomeURI == null) { return(false); } string[] handlerType; var homeURI = agent.HomeURI.ToString(); try { handlerType = ServicePluginHelo.HeloRequest_HandleType(homeURI); } catch { return(false); } UserAgentServiceInterface userAgentService = null; foreach (var service in m_UserAgentPlugins) { if (handlerType.Contains(service.Name)) { userAgentService = service.Instantiate(homeURI); break; } } if (userAgentService == null) { return(false); } string friendsUri; Dictionary <string, string> serviceurls; try { serviceurls = userAgentService.GetServerURLs(agent); } catch { return(false); } if (!serviceurls.TryGetValue("FriendsServerURI", out friendsUri)) { return(false); } try { handlerType = ServicePluginHelo.HeloRequest_HandleType(friendsUri); } catch { return(false); } foreach (var service in m_FriendsPlugins) { if (handlerType.Contains(service.Name)) { friendsService = service.Instantiate(friendsUri); return(true); } } return(false); }