/// <summary> /// Starts the adapter. /// This method returns immediately leaving to a background worker /// the task of getting the data and process it. /// /// Throws an exception if it can't initialise itself. /// </summary> public void Start() { try { LogVersions(); _logger.Info("Adapter is connecting to the UDAPI service..."); _udapiServiceFacade.Connect(); if (!_udapiServiceFacade.IsConnected) { return; } _logger.Debug("Adapter connected to the UDAPI - initialising..."); AdapterActorSystem.Init( _settings, _udapiServiceFacade, _platformConnector, _stateManager, _suspensionManager, _streamHealthCheckValidation, _fixtureValidation); _logger.InfoFormat("Adapter started"); _stats.SetValue(AdapterCoreKeys.ADAPTER_STARTED, "1"); } catch (Exception ex) { _logger.Fatal("A fatal error has occurred and the Adapater cannot start. You can try a manual restart", ex); throw; } }
/// <summary> /// Allows to stop the adapter. /// /// Before returning, and if it is so configured, /// the adapter sends a "suspend" request to /// all the currently registred fixtures. /// </summary> public void Stop() { _logger.InfoFormat("Adapter is stopping"); try { _platformConnector?.Dispose(); _udapiServiceFacade?.Disconnect(); AdapterActorSystem.Dispose(); } catch (Exception e) { _logger.Error("An error occured while disposing the adapter", e); } _stats.SetValue(AdapterCoreKeys.ADAPTER_STARTED, "0"); _logger.InfoFormat("Adapter stopped"); }
public void SafeDisposeSupervisorIfEnabled() { // //Arrange // var objectProviderMock = new Mock <IObjectProvider <Dictionary <string, FixtureOverview> > >(); var settingsMock = new Mock <ISettings>(); var udapiServiceFacadeMock = new Mock <IServiceFacade>(); var platformConnectorMock = new Mock <IAdapterPlugin>(); var stateManagerMock = new Mock <IStateManager>(); var suspensionManagerMock = new Mock <ISuspensionManager>(); var streamHealthCheckValidationMock = new Mock <IStreamHealthCheckValidation>(); var fixtureValidationMock = new Mock <IFixtureValidation>(); settingsMock.SetupGet(s => s.StateProviderPath).Returns(@"C:\Fake_Path"); settingsMock.SetupGet(s => s.FixturesStateFilePath).Returns(@"Fake_Path_Rel"); settingsMock.SetupGet(s => s.FixtureCheckerFrequency).Returns(60000); // //Act // AdapterActorSystem.Init( settingsMock.Object, udapiServiceFacadeMock.Object, platformConnectorMock.Object, stateManagerMock.Object, suspensionManagerMock.Object, streamHealthCheckValidationMock.Object, fixtureValidationMock.Object); SupervisorStartUp.Initialize(objectProviderMock.Object); // //Assert // Assert.DoesNotThrow(SupervisorStartUp.Dispose); }