public async Task <bool> Run(CancellationToken token, Logger log, Config config) { _log = log; _config = config; ResgridV3ApiClient.Init(_config.ApiUrl, _config.Username, _config.Password); var departments = await DepartmentApi.Get(_config.CacheDepartmentId); foreach (var department in departments) { var departmentDataProvider = new DepartmentDataProvider(department); await departmentDataProvider.GetData(false); departmentDataProvider.Start(_config, log); _data.Add(department.Id, departmentDataProvider); } while (!token.IsCancellationRequested) { Thread.Sleep(500); } foreach (var item in _data) { item.Value.Stop(); } return(true); }
private void Init() { if (_config == null) { _config = _configService.LoadSettingsFromFile(); ResgridV3ApiClient.Init(_config.ApiUrl, _config.Username, _config.Password); } }
private bool Run(Config config, Logger log) { System.Console.WriteLine($"Listening for Dispatches on Device: {config.InputDevice}"); audioStorage = new WatcherAudioStorage(log); evaluator = new AudioEvaluator(log); recorder = new AudioRecorder(evaluator, audioStorage); processor = new AudioProcessor(recorder, evaluator, audioStorage); com = new ComService(log, processor); com.CallCreatedEvent += Com_CallCreatedEvent; System.Console.WriteLine("Hooking into Events"); recorder.SampleAggregator.MaximumCalculated += SampleAggregator_MaximumCalculated; recorder.SampleAggregator.WaveformCalculated += SampleAggregator_WaveformCalculated; processor.TriggerProcessingStarted += Processor_TriggerProcessingStarted; processor.TriggerProcessingFinished += Processor_TriggerProcessingFinished; evaluator.WatcherTriggered += Evaluator_WatcherTriggered; ResgridV3ApiClient.Init(config.ApiUrl, config.Username, config.Password); System.Console.WriteLine( $"Config Loaded with {config.Watchers.Count} watchers ({config.Watchers.Count(x => x.Active)} active)"); System.Console.WriteLine("Initializing Processor"); processor.Init(config); System.Console.WriteLine("Starting Processor"); processor.Start(); System.Console.WriteLine("Starting Communication Service"); com.Init(config); System.Console.WriteLine("Communication Service: Validating API Connection"); if (com.IsConnectionValid()) { System.Console.WriteLine("Communication Service: API Connection is Valid"); } else { System.Console.WriteLine( "Communication Service: CANNOT TALK TO RESGRID API, CHECK YOUR CONFIG APIURL AND ENSURE YOUR COMPUTER CAN TALK TO THAT URL"); } System.Console.WriteLine("Ready, Listening to Audio. Press Ctrl+C to exit."); while (recorder.RecordingState == RecordingState.Monitoring || recorder.RecordingState == RecordingState.Recording) { Thread.Sleep(250); } return(true); }