20-12-2022

This commit is contained in:
Jonathan Jenne
2022-12-20 15:29:29 +01:00
parent 3e2c4a9ab0
commit 1e925242bc
12 changed files with 291 additions and 179 deletions

View File

@@ -5,14 +5,32 @@ namespace ECM.JobRunner.Web.Data
public class DashboardResponse
{
public DateTime heartbeat = DateTime.MinValue;
public List<HistoryItem> jobHistory = new();
public List<StatusItem> jobStatus = new();
public List<HistoryItem> GetHistoryForLastMinutes(int pMinutes)
public class JobHistory
{
return jobHistory.
Where(h => (DateTime.Now - h.CreatedAt) < new TimeSpan(0, pMinutes, 0)).
public List<StatusItem> items;
public int total;
public int success;
public int failed;
public int waiting;
}
public JobHistory GetHistoryForLastMinutes(int pMinutes)
{
var items = jobStatus.
Where(s => (DateTime.Now - s.CompleteTime) < new TimeSpan(0, pMinutes, 0)).
Where(s => s.Executing == false).
ToList();
return new JobHistory()
{
items = items,
total = items.Count,
success = items.Where(i => i.Successful && i.Waiting == false).Count(),
failed = items.Where(i => i.Successful == false).Count(),
waiting = items.Where(i => i.Successful && i.Waiting == true).Count()
};
}
}
}

View File

@@ -17,7 +17,9 @@ namespace ECM.JobRunner.Web.Data
{
logger = Logging.LogConfig.GetLogger();
channel = Wcf.Channel;
pollingTimer.Interval = 1000;
pollingTimer.Elapsed += PollingTimer_Elapsed;
pollingTimer.Enabled = true;
}
protected virtual void OnDataUpdated(DashboardResponse e)
@@ -32,39 +34,14 @@ namespace ECM.JobRunner.Web.Data
public async Task<DashboardResponse> GetData()
{
List<Common.JobRunnerReference.HistoryItem> jobHistory = await GetHistoryItems();
List<Common.JobRunnerReference.StatusItem> jobStatus = await GetStatusItems();
return new DashboardResponse()
{
jobHistory = jobHistory.OrderByDescending(e => e.CreatedAt).ToList(),
jobStatus = jobStatus.OrderByDescending(e => e.StartTime).ToList()
jobStatus = jobStatus.OrderByDescending(e => e.CompleteTime).ToList()
};
}
private async Task<List<Common.JobRunnerReference.HistoryItem>> GetHistoryItems()
{
try
{
var oResponse = await channel.GetJobStatusAsync();
if (oResponse.OK)
{
return oResponse.HistoryItems.ToList();
}
else
{
return new();
}
}
catch (Exception e)
{
logger.Error(e);
return new();
}
}
private async Task<List<Common.JobRunnerReference.StatusItem>> GetStatusItems()
{
try