private ApplicationProxy(IBackendProvider provider, StasisEndpoint endpoint, string appName, ILogger logger) { _provider = provider; _endpoint = endpoint; AppName = appName; Created = DateTime.Now; Logger = logger; // Init _dialogues = new ConcurrentDictionary <string, IDialogue>(); _client = new AriClient(_endpoint, AppName) { EventDispatchingStrategy = EventDispatchingStrategy.DedicatedThread }; _restClient = new RestClient(_endpoint.AriEndPoint) { Authenticator = new HttpBasicAuthenticator(_endpoint.Username, _endpoint.Password) }; ActiveDialogues = new List <IDialogue>(); // Register this app name with the backend provider _provider.RegisterApplication(AppName); // Init event handler _client.OnUnhandledEvent += _client_OnUnhandledEvent; _client.OnConnectionStateChanged += _client_OnConnectionStateChanged; }
public static ApplicationProxy Create(IBackendProvider provider, StasisEndpoint endpoint, string appName, ILogger logger) { logger.LogInformation("Starting Application Proxy for {0}", appName); var rtn = new ApplicationProxy(provider, endpoint, appName, logger); Instances.Add(rtn); rtn.Start(); return(rtn); }
public BackendApiController(IBackendProvider backendProvider) { BackendProvider = backendProvider; }