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() { } } }