public async Task StartAsync(CancellationToken cancellationToken) { Logger.Info("Starting service"); _containerProvider = new UnityContainerProvider(); LoadPlugins(_containerProvider); _apiServer = _containerProvider.Resolve <IApiServer>(); _apiClient = _containerProvider.Resolve <IApiClient>(); _engine = _containerProvider.Resolve <IAudioEngine>(); _updateService = _containerProvider.Resolve <IUpdateService>(); await _apiServer.StartAsync(); _settingsService = _containerProvider.Resolve <ISettingsService>(); await _settingsService.LoadAsync().ConfigureAwait(false); if (_settingsService.GetSetting <bool>(Globals.SettingKeys.IsEngineRunning)) { _engine.Start(); } _updateTimer.Start(); Logger.Info("Service started"); }
private static void Init() { var container = UnityContainerProvider.Initialize(); ModuleLoader.Initialize(container); var catalog = new ModuleCatalog(); container.RegisterInstance <IModuleCatalog>(catalog, new ContainerControlledLifetimeManager()); ModuleLoader.Run(container); FactoryDbContext.InitDatabase(false); }