20-12-2022
This commit is contained in:
@@ -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()
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user