From 4222eddece906d6f0877022c06b853deb5068472 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 30 Jul 2025 12:36:30 +0300 Subject: Telemetry source. --- .../Sources/TelemetryJobRunsHistoryModule.cs | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryJobRunsHistoryModule.cs (limited to 'Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryJobRunsHistoryModule.cs') diff --git a/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryJobRunsHistoryModule.cs b/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryJobRunsHistoryModule.cs new file mode 100644 index 000000000..6cb597e4b --- /dev/null +++ b/Software/Visual_Studio/Tango.Telemetry/Sources/TelemetryJobRunsHistoryModule.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Data.Entity; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.Telemetry.Telemetries; + +namespace Tango.Telemetry.Sources +{ + public class TelemetryJobRunsHistorySource : TelemetryConfigurableSource, ITelemetryHistorySource + { + private bool _isBusy; + + public string Name { get; private set; } = "JobRuns History"; + + public Task CanRequestHistory(DateTime from) + { + return Task.FromResult(!_isBusy); + } + + public async Task> RequestHistory(DateTime from) + { + try + { + _isBusy = true; + + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var runs = await db.JobRuns + .Where(x => x.LastUpdated > from) + .OrderBy(x => x.LastUpdated) + .Take(Config.MaxJobRunsPerRequest) + .ToListAsync(); + + List tRuns = new List(); + + foreach (var run in runs) + { + TelemetryJobRun tRun = new TelemetryJobRun(); + tRun.Time = run.LastUpdated; + //Fill the object.. + tRuns.Add(tRun); + } + + return tRuns; + } + } + finally + { + _isBusy = false; + } + } + + public void Dispose() + { + + } + } +} -- cgit v1.3.1