/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">アプリケーション設定</param> public QueuePolly(UtilityAppSettings settings) { this.settings = settings; this.retryPolicy = Policy.Handle <Exception>() .WaitAndRetry(settings.AlarmQueueAccessMaxAttempts, retryCount => TimeSpan.FromSeconds(retryCount * settings.AlarmQueueDelayDeltaSeconds)); }
/// <summary> /// DIを実行する /// </summary> /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param> /// <param name="testLogs">ログの格納先</param> /// <param name="exceptionType">DbCleanerServiceのモックに例外をスローさせる場合そのタイプを指定する。DbCleanerServiceのモックを使用しない場合はnullを指定する</param> private void DependencyInjection(Dictionary <string, string> appSettings = null, List <TestLog> testLogs = null, Type exceptionType = null) { var builder = new TestDiProviderBuilder <UtilityAppSettings>(FunctionsHostBuilderExtend.AddUtility); builder.ServiceCollection.AddTransient <DbCleanController>(); if (exceptionType != null) { Exception exception = Activator.CreateInstance(exceptionType) as Exception; builder.ServiceCollection.AddTransient <Rms.Server.Core.Service.Services.ICleanDbService>(x => new ErrorCleanDbService(exception)); } builder.AddConfigures(appSettings); Mock <DateTimeProvider> timeProviderMock = new Mock <DateTimeProvider>(); timeProviderMock.SetupGet(tp => tp.UtcNow).Returns(TestTime); builder.ServiceCollection.AddSingleton <ITimeProvider>(timeProviderMock.Object); if (testLogs != null) { builder.ServiceCollection.AddSingleton <ILogger <CleanDbService> >(new TestLogger <CleanDbService>(testLogs)); } ServiceProvider provider = builder.Build(); settings = provider.GetService <UtilityAppSettings>() as UtilityAppSettings; target = provider.GetService <DbCleanController>(); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlmilogAnalysisResultRepository">アルミスロープログ解析判定結果リポジトリ</param> /// <param name="dtAlmilogAnalysisConfigRepository">アルミスロープログ解析設定リポジトリ</param> /// <param name="dtBloclogAnalysisConfigRepository">ムラログ解析設定リポジトリ</param> /// <param name="failureRepository">Failureストレージリポジトリ</param> public DipAlmiLogAnalyzerService( UtilityAppSettings settings, ILogger <DipAlmiLogAnalyzerService> logger, ITimeProvider timeProvider, IDtAlmilogAnalysisResultRepository dtAlmilogAnalysisResultRepository, IDtAlmilogAnalysisConfigRepository dtAlmilogAnalysisConfigRepository, IDtBloclogAnalysisConfigRepository dtBloclogAnalysisConfigRepository, IFailureRepository failureRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlmilogAnalysisResultRepository); Assert.IfNull(dtAlmilogAnalysisConfigRepository); Assert.IfNull(dtBloclogAnalysisConfigRepository); Assert.IfNull(failureRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlmilogAnalysisResultRepository = dtAlmilogAnalysisResultRepository; _dtAlmilogAnalysisConfigRepository = dtAlmilogAnalysisConfigRepository; _dtBloclogAnalysisConfigRepository = dtBloclogAnalysisConfigRepository; _failureRepository = failureRepository; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlarmSmartPremonitorRepository">ディスクドライブ予兆監視アラーム定義リポジトリ</param> /// <param name="dtSmartAnalysisResultRepository">SMART解析判定結果リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> /// <param name="failureRepository">Failureストレージリポジトリ</param> public DiskDrivePremonitorService( UtilityAppSettings settings, ILogger <DiskDrivePremonitorService> logger, ITimeProvider timeProvider, IDtAlarmSmartPremonitorRepository dtAlarmSmartPremonitorRepository, IDtSmartAnalysisResultRepository dtSmartAnalysisResultRepository, IQueueRepository queueRepository, IFailureRepository failureRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlarmSmartPremonitorRepository); Assert.IfNull(dtSmartAnalysisResultRepository); Assert.IfNull(queueRepository); Assert.IfNull(failureRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlarmSmartPremonitorRepository = dtAlarmSmartPremonitorRepository; _dtSmartAnalysisResultRepository = dtSmartAnalysisResultRepository; _queueRepository = queueRepository; _failureRepository = failureRepository; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">インストール監視サービスクラス</param> public InstallMonitorController(UtilityAppSettings settings, IInstallMonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">パネル欠陥予兆監視サービスクラス</param> public PanelDefectPremonitorController(UtilityAppSettings settings, IPanelDefectPremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">親子間通信データテーブル監視サービスクラス</param> public ParentChildrenConnectionMonitorController(UtilityAppSettings settings, IParentChildrenConnectionMonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">骨塩アルミスロープログ予兆監視サービスクラス</param> public DipAlmiLogPremonitorControllerTest(UtilityAppSettings settings, IDipAlmiLogPremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">キャリブレーション予兆監視サービスクラス</param> public CalibrationPremonitorController(UtilityAppSettings settings, ICalibrationPremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">温度センサ監視サービスクラス</param> public TemperatureSensorMonitorController(UtilityAppSettings settings, ITemperatureSensorMonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">ディレクトリ使用量監視サービスクラス</param> public DirectoryUsageMonitorController(UtilityAppSettings settings, IDirectoryUsageMonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">パネル放電破壊予兆監視サービスクラス</param> public PanelDischargeBreakdownPremonitorController(UtilityAppSettings settings, IPanelDischargeBreakdownPremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">管球劣化予兆監視サービスクラス</param> public TubeDeteriorationPremonitorController(UtilityAppSettings settings, ITubeDeteriorationPremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">故障予兆監視サービスクラス</param> public FailurePremonitorController(UtilityAppSettings settings, IFailurePremonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="service">端末データテーブル監視サービスクラス</param> public DeviceConnectionMonitorController(UtilityAppSettings settings, IDeviceConnectionMonitorService service) { Assert.IfNull(settings); Assert.IfNull(service); _settings = settings; _service = service; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="logger">ロガー</param> /// <param name="queuePolly">キュー接続用のPolly</param> /// <param name="appSettings">アプリケーション設定</param> public QueueRepository(ILogger <QueueRepository> logger, QueuePolly queuePolly, UtilityAppSettings appSettings) { Assert.IfNull(logger); Assert.IfNull(queuePolly); Assert.IfNull(appSettings); _logger = logger; _queuePolly = queuePolly; _appSettings = appSettings; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="parentChildrenConnectionService">親子間通信データテーブル監視サービスクラス</param> /// <param name="deviceConnectionService">端末データテーブル監視サービスクラス</param> public ConnectionMonitorControllerTest(UtilityAppSettings settings, IParentChildrenConnectionMonitorService parentChildrenConnectionService, IDeviceConnectionMonitorService deviceConnectionService) { Assert.IfNull(settings); Assert.IfNull(parentChildrenConnectionService); Assert.IfNull(deviceConnectionService); _settings = settings; _parentChildrenConnectionService = parentChildrenConnectionService; _deviceConnectionService = deviceConnectionService; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtDeviceRepository">端末データテーブルリポジトリ</param> /// <param name="dtAlarmDefConnectionMonitorRepository">通信監視アラーム定義リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> public DeviceConnectionMonitorService( UtilityAppSettings settings, ILogger <DeviceConnectionMonitorService> logger, ITimeProvider timeProvider, IDtDeviceRepository dtDeviceRepository, IDtAlarmDefConnectionMonitorRepository dtAlarmDefConnectionMonitorRepository, IQueueRepository queueRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtDeviceRepository); Assert.IfNull(dtAlarmDefConnectionMonitorRepository); Assert.IfNull(queueRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtDeviceRepository = dtDeviceRepository; _dtAlarmDefConnectionMonitorRepository = dtAlarmDefConnectionMonitorRepository; _queueRepository = queueRepository; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlarmDefTemperatureSensorLogMonitorRepository">温度センサログ監視アラーム定義リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> /// <param name="failureRepository">Failureストレージリポジトリ</param> public TemperatureSensorMonitorService( UtilityAppSettings settings, ILogger <TemperatureSensorMonitorService> logger, ITimeProvider timeProvider, IDtAlarmDefTemperatureSensorLogMonitorRepository dtAlarmDefTemperatureSensorLogMonitorRepository, IQueueRepository queueRepository, IFailureRepository failureRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlarmDefTemperatureSensorLogMonitorRepository); Assert.IfNull(queueRepository); Assert.IfNull(failureRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlarmDefTemperatureSensorLogMonitorRepository = dtAlarmDefTemperatureSensorLogMonitorRepository; _queueRepository = queueRepository; _failureRepository = failureRepository; }
/// <summary> /// DIを実行する /// </summary> /// <param name="appSettings">アプリケーション設定を上書きする場合は指定する</param> /// <param name="testLogs">ログの格納先</param> private void DependencyInjection(Dictionary <string, string> appSettings = null, List <TestLog> testLogs = null) { var builder = new TestDiProviderBuilder <UtilityAppSettings>(FunctionsHostBuilderExtend.AddUtility); builder.ServiceCollection.AddTransient <ParentChildrenConnectionMonitorController>(); builder.AddConfigures(appSettings); Mock <DateTimeProvider> timeProviderMock = new Mock <DateTimeProvider>(); timeProviderMock.SetupGet(tp => tp.UtcNow).Returns(TestTime); builder.ServiceCollection.AddSingleton <ITimeProvider>(timeProviderMock.Object); if (testLogs != null) { builder.ServiceCollection.AddSingleton <ILogger <ParentChildrenConnectionMonitorService> >(new TestLogger <ParentChildrenConnectionMonitorService>(testLogs)); } ServiceProvider provider = builder.Build(); settings = provider.GetService <UtilityAppSettings>(); target = provider.GetService <ParentChildrenConnectionMonitorController>(); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlarmDefTubeCurrentDeteriorationPremonitorRepository">管電流経時劣化予兆監視アラーム定義リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> /// <param name="failureRepository">Failureストレージリポジトリ</param> public TubeCurrentDeteriorationPremonitorService( UtilityAppSettings settings, ILogger <TubeCurrentDeteriorationPremonitorService> logger, ITimeProvider timeProvider, IDtAlarmDefTubeCurrentDeteriorationPremonitorRepository dtAlarmDefTubeCurrentDeteriorationPremonitorRepository, IQueueRepository queueRepository, IFailureRepository failureRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlarmDefTubeCurrentDeteriorationPremonitorRepository); Assert.IfNull(queueRepository); Assert.IfNull(failureRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlarmDefTubeCurrentDeteriorationPremonitorRepository = dtAlarmDefTubeCurrentDeteriorationPremonitorRepository; _queueRepository = queueRepository; _failureRepository = failureRepository; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlarmDefPanelDefectPremonitorRepository">パネル欠陥予兆監視アラーム定義リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> /// <param name="failureRepository">Failureストレージリポジトリ</param> public PanelDefectPremonitorService( UtilityAppSettings settings, ILogger <PanelDefectPremonitorService> logger, ITimeProvider timeProvider, IDtAlarmDefPanelDefectPremonitorRepository dtAlarmDefPanelDefectPremonitorRepository, IQueueRepository queueRepository, IFailureRepository failureRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlarmDefPanelDefectPremonitorRepository); Assert.IfNull(queueRepository); Assert.IfNull(failureRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlarmDefPanelDefectPremonitorRepository = dtAlarmDefPanelDefectPremonitorRepository; _queueRepository = queueRepository; _failureRepository = failureRepository; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="settings">設定</param> /// <param name="logger">ロガー</param> /// <param name="timeProvider">DateTimeの提供元</param> /// <param name="dtAlmilogAnalysisResultRepository">アルミスロープログ解析判定結果リポジトリ</param> /// <param name="dtAlmilogPremonitorRepository">アルミスロープログ予兆監視アラーム定義リポジトリ</param> /// <param name="queueRepository">Queueリポジトリ</param> public DipAlmiLogPremonitorService( UtilityAppSettings settings, ILogger <DipAlmiLogPremonitorService> logger, ITimeProvider timeProvider, IDtAlmilogAnalysisResultRepository dtAlmilogAnalysisResultRepository, IDtAlmilogPremonitorRepository dtAlmilogPremonitorRepository, IQueueRepository queueRepository) { Assert.IfNull(settings); Assert.IfNull(logger); Assert.IfNull(timeProvider); Assert.IfNull(dtAlmilogAnalysisResultRepository); Assert.IfNull(dtAlmilogPremonitorRepository); Assert.IfNull(queueRepository); _settings = settings; _logger = logger; _timeProvider = timeProvider; _dtAlmilogAnalysisResultRepository = dtAlmilogAnalysisResultRepository; _dtAlmilogPremonitorRepository = dtAlmilogPremonitorRepository; _queueRepository = queueRepository; _alarmCountThreshold = int.Parse(_settings.AlarmCountThreshold); }