Redesign refresh status table with summary counts and detail popup, sort pipeline dropdown alphabetically

Replace 11 per-table record columns on /refresh-status with Passed/Failed summary counts and a click-to-expand detail dialog showing per-table results. Add date-range SQL query to push filtering to the database. Sort pipeline dropdown alphabetically on /data-sync/requests.
This commit is contained in:
Joseph Doherty
2026-02-11 19:00:53 -05:00
parent 12cf94a9dc
commit 1b9367dcbb
10 changed files with 141 additions and 66 deletions
@@ -2,38 +2,25 @@ namespace JdeScoping.Core.Models.Infrastructure;
/// <summary>
/// DTO for data refresh/sync status display.
/// Aggregates record counts from multiple table updates into a single row.
/// Summarises a single sync run with pass/fail counts and per-table detail.
/// </summary>
public class DataUpdateDto
{
/// <summary>The start time of the data update.</summary>
public DateTime StartDt { get; set; }
/// <summary>The end time of the data update.</summary>
public DateTime? EndDt { get; set; }
/// <summary>The number of branch records updated.</summary>
public int BranchRecords { get; set; }
/// <summary>The number of profit center records updated.</summary>
public int ProfitCenterRecords { get; set; }
/// <summary>The number of work center records updated.</summary>
public int WorkCenterRecords { get; set; }
/// <summary>The number of organizational hierarchy records updated.</summary>
public int OrgHierarchyRecords { get; set; }
/// <summary>The number of status code records updated.</summary>
public int StatusCodeRecords { get; set; }
/// <summary>The number of user records updated.</summary>
public int UserRecords { get; set; }
/// <summary>The number of item records updated.</summary>
public int ItemRecords { get; set; }
/// <summary>The number of lot records updated.</summary>
public int LotRecords { get; set; }
/// <summary>The number of work order records updated.</summary>
public int WorkOrderRecords { get; set; }
/// <summary>The number of work order step records updated.</summary>
public int WorkOrderStepRecords { get; set; }
/// <summary>The number of work order component records updated.</summary>
public int WorkOrderComponentRecords { get; set; }
/// <summary>Whether the data update was successful.</summary>
/// <summary>Whether the data update was successful overall.</summary>
public bool WasSuccessful { get; set; }
/// <summary>Number of table syncs that succeeded.</summary>
public int PassedCount { get; set; }
/// <summary>Number of table syncs that failed.</summary>
public int FailedCount { get; set; }
/// <summary>Per-table detail for this sync run.</summary>
public List<DataUpdateItemDto> Items { get; set; } = [];
}
@@ -0,0 +1,16 @@
namespace JdeScoping.Core.Models.Infrastructure;
/// <summary>
/// Per-table detail within a data sync run.
/// </summary>
public class DataUpdateItemDto
{
/// <summary>The cache table that was synced.</summary>
public string TableName { get; set; } = string.Empty;
/// <summary>Whether this table sync succeeded.</summary>
public bool WasSuccessful { get; set; }
/// <summary>Number of records synced for this table.</summary>
public long NumberRecords { get; set; }
}