Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
            };
        }