Exemple #1
0
        /// <summary>
        /// IndexBlobService
        /// </summary>
        /// <param name="settings">アプリケーション設定</param>
        /// <param name="logger">ロガー</param>
        /// <param name="collectingRepository">ICollectingRepository</param>
        /// <param name="primaryRepository">IPrimaryRepository</param>
        /// <param name="dtDeviceFileRepository">IDtDeviceFileRepository</param>
        /// <param name="dtDeviceRepository">IDtDeviceRepository</param>
        /// <param name="timeProvider">ITimeProvider</param>
        public IndexBlobService(
            AppSettings settings,
            ILogger <IndexBlobService> logger,
            ICollectingRepository collectingRepository,
            IPrimaryRepository primaryRepository,
            IDtDeviceFileRepository dtDeviceFileRepository,
            IDtDeviceRepository dtDeviceRepository,
            ITimeProvider timeProvider)
        {
            Assert.IfNull(settings);
            Assert.IfNull(logger);
            Assert.IfNull(collectingRepository);
            Assert.IfNull(primaryRepository);
            Assert.IfNull(dtDeviceFileRepository);
            Assert.IfNull(dtDeviceRepository);
            Assert.IfNull(timeProvider);

            _settings               = settings;
            _logger                 = logger;
            _collectingRepository   = collectingRepository;
            _primaryRepository      = primaryRepository;
            _dtDeviceFileRepository = dtDeviceFileRepository;
            _dtDeviceRepository     = dtDeviceRepository;
            _timeProvider           = timeProvider;
        }
        /// <summary>
        /// DIを実行する
        /// </summary>
        /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param>
        private void DependencyInjection(Dictionary <string, string> appSettings = null)
        {
            TestDiProviderBuilder builder = new TestDiProviderBuilder();

            builder.ServiceCollection.AddTransient <CollectingBlob>();

            if (appSettings != null)
            {
                foreach (KeyValuePair <string, string> pair in appSettings)
                {
                    builder.AddConfigure(pair.Key, pair.Value);
                }
            }

            builder.ServiceCollection.AddSingleton <ITimeProvider>(UnitTestHelper.CreateTimeProvider(new DateTime(2030, 1, 1)));
            ServiceProvider provider = builder.Build();

            primaryBlob    = provider.GetService <PrimaryBlob>();
            collectingBlob = provider.GetService <CollectingBlob>();
            target         = provider.GetService <ICollectingRepository>();
        }