private async void CheckState(MeasurementSettingsEntry settingsEntry) { string statusMessage = "Checking state of '" + settingsEntry.Name + "'"; Logger.Log(LogLevel.Info, statusMessage); statusModel.StatusMessage = statusMessage; try { List <dynamic>[] lines = await downloader.GetLastRows(settingsEntry.Url, settingsEntry.Selector); foreach (List <dynamic> line in lines) { Logger.Log(LogLevel.Debug, "Adding line to writer controller."); writerController.AddToQueue(new MeasurementResult(settingsEntry, line, DateTime.Now)); } } catch (Exception ex) { Logger.Log(LogLevel.Error, "CheckState failed with an exception: " + ex.Message); } finally { Logger.Log(LogLevel.Info, "CheckState of '" + settingsEntry.Name + "' finished."); } }
private Timer CreateMeasurementTimer(MeasurementSettingsEntry entry) { var timer = new MeasurementTimer(entry); timer.Interval = entry.UpdateInterval; timer.Elapsed += Timer_Elapsed; idsToTimers[entry.Id] = timer; return(timer); }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { MeasurementSettingsEntry settingsEntry = ((MeasurementTimer)sender)?.MeasurementSettingsEntry; CheckState(settingsEntry); }
public MeasurementTimer(MeasurementSettingsEntry measurementSettingsEntry) : base() { this.measurementSettingsEntry = measurementSettingsEntry; }