public AssetsStorageService( ILogger logger, IESClientFactory clientFactory, IConfiguration configuration, IFileStorage fileStorage, IAssetsStorageRepository assetStorageCache, IConfiguration config) { _logger = logger; _fileStorage = fileStorage; _dataBaseWrapper = assetStorageCache; _conf = config; _conf.SettingsChanged += OnSettingsChange; OnSettingsChange(_conf, _conf.Settings); }
public void Build(HostPluginBuildContext ctx) { ctx.HostDependenciesRegistration += (IDependencyBuilder builder) => { builder.Register <AssetsStorageService>().As <IAssetsStorageService>(); builder.Register <AssetsStorageController>().InstancePerRequest(); builder.Register <AssetsStorageWebApiConfig>().As <IAdminWebApiConfig>(); builder.Register <AssetsStorageAdminController>(); builder.Register <ESAssetsStorageRepository>().As <IAssetsStorageRepository>().SingleInstance(); builder.Register <AssetsStorageService.Accessor>(); }; ctx.SceneCreated += (ISceneHost scene) => { if (scene.Metadata.ContainsKey(METADATA_KEY)) { scene.AddController <AssetsStorageController>(); } }; ctx.HostStarted += (IHost host) => { _host = host; _config = host.DependencyResolver.Resolve <IConfiguration>(); _config.SettingsChanged += OnSettingsChange; OnSettingsChange(_config, _config.Settings); _assetStorageRepo = host.DependencyResolver.Resolve <IAssetsStorageRepository>(); _flushTask = Task.Run(() => FlushSchedule(), _cts.Token); }; ctx.HostShuttingDown += (IHost host) => { _cts.Cancel(); }; }