/// <summary> /// Creates core service instances and registers them in <see cref="ServiceRegistration"/>. /// </summary> public static void RegisterCoreServices() { ILogger logger = ServiceRegistration.Get <ILogger>(); logger.Debug("ApplicationCore: Registering IImpersonationService"); ServiceRegistration.Set <IImpersonationService>(new ImpersonationService()); logger.Debug("ApplicationCore: Registering IRegistry service"); ServiceRegistration.Set <IRegistry>(new Services.Registry.Registry()); logger.Debug("ApplicationCore: Registering IThreadPool service"); ServiceRegistration.Set <IThreadPool>(new ThreadPool()); logger.Debug("ApplicationCore: Registering IMessageBroker service"); ServiceRegistration.Set <IMessageBroker>(new MessageBroker()); logger.Debug("ApplicationCore: Registering ILoggerConfig service"); ServiceRegistration.Set <ILoggerConfig>(new LoggerConfig()); logger.Debug("ApplicationCore: Registering IPluginManager service"); ServiceRegistration.Set <IPluginManager>(new Services.PluginManager.PluginManager()); logger.Debug("ApplicationCore: Registering ILocalization service"); ServiceRegistration.Set <ILocalization>(new StringManager()); logger.Debug("ApplicationCore: Registering ITaskScheduler service"); ServiceRegistration.Set <ITaskScheduler>(new Services.TaskScheduler.TaskScheduler()); logger.Debug("ApplicationCore: Registering IMediaAccessor service"); ServiceRegistration.Set <IMediaAccessor>(new MediaAccessor()); logger.Debug("ApplicationCore: Registering IFileEventNotifier service"); ServiceRegistration.Set <IFileEventNotifier>(new FileEventNotifier()); // ToDo: Remove the old ImporterWorker and this setting once the NewGen ImporterWorker actually works var importerWorkerSettings = ServiceRegistration.Get <ISettingsManager>().Load <ImporterWorkerSettings>(); if (importerWorkerSettings.UseNewImporterWorker) { logger.Debug("ApplicationCore: Registering IImporterWorker NewGen service"); ServiceRegistration.Set <IImporterWorker>(new ImporterWorkerNewGen()); } else { logger.Debug("ApplicationCore: Registering IImporterWorker service"); ServiceRegistration.Set <IImporterWorker>(new ImporterWorker()); } logger.Debug("ApplicationCore: Registering IResourceServer service"); ServiceRegistration.Set <IResourceServer>(new ResourceServer()); logger.Debug("ApplicationCore: Registering IResourceMountingService"); ServiceRegistration.Set <IResourceMountingService>(new ResourceMountingService()); logger.Debug("ApplicationCore: Registering IRemoteResourceInformationService"); ServiceRegistration.Set <IRemoteResourceInformationService>(new RemoteResourceInformationService()); logger.Debug("ApplicationCore: Registering IThumbnailGenerator service"); ServiceRegistration.Set <IThumbnailGenerator>(new ThumbnailGenerator()); AdditionalPluginItemBuilders.Register(); }