public int Connect(string uri, string marketId) { try { lock (proxies) { //int s = uri.LastIndexOf('/'); //string hostUrl = uri.Substring(0, s); //string advisorName = uri.Substring(s + 1); //IHost host = (IHost)Activator.GetObject( // typeof(IHost), hostUrl); //todo add remoting possibility IAdvisorProxy proxy = LoadAdvisorAssembly(uri);//host.GetAdvisor(advisorName); int token = proxy.StartSession(marketId); proxies[token] = proxy; return(token); } } catch (Exception ex) { logger.Error.Log("Connection failed.", ex); return(-1); } }
public IAdvisorProxy LoadAdvisors(string path) { string[] dlls = Directory.GetFiles(path, "*.dll", SearchOption.AllDirectories); foreach (string dll in dlls) { IAdvisorProxy proxy = LoadAdvisorAssembly(dll); if (proxy != null) { return(proxy); } } throw new ArgumentException("Can`t find any strategy"); }
public void Disconnect(int token) { IAdvisorProxy proxy = proxies[token]; try { proxy.EndSession(token); proxies[token] = proxy; } catch (Exception ex) { logger.Error.Log("Disconnection failed.", ex); } }