feat: complete WorkProcessor integration and bug fixes

- Fix hourly lookback bug: use hourly timestamp/interval (not daily)
- Update DI registrations across DataSync, DataAccess, Api layers
- Add WorkProcessor config to appsettings.json
- Remove deprecated DataSyncService (replaced by WorkProcessor)

All 340 DataSync tests pass. Legacy bug from OLD solution now fixed.
This commit is contained in:
Joseph Doherty
2026-01-07 06:26:45 -05:00
parent 91b516e197
commit 5ee920a399
8 changed files with 30 additions and 841 deletions
@@ -211,9 +211,9 @@ public class ScheduleCheckerTests
}
[Fact]
public async Task GetPendingTasksAsync_HourlySync_UsesDailyTimestampForMinimumDT()
public async Task GetPendingTasksAsync_HourlySync_UsesHourlyTimestampForMinimumDT()
{
// Arrange: Per legacy behavior, hourly uses DAILY's timestamp for MinimumDT calculation
// Arrange: Hourly uses its own timestamp and interval for MinimumDT calculation
var config = CreateDataSourceConfig("WorkOrder",
massEnabled: true, massInterval: 10080,
dailyEnabled: true, dailyInterval: 1440,
@@ -241,8 +241,8 @@ public class ScheduleCheckerTests
tasks[0].UpdateType.ShouldBe(UpdateTypes.Hourly);
tasks[0].MinimumDt.ShouldNotBeNull();
// Hourly uses daily's timestamp and daily's interval for lookback calculation
var expectedMinimumDt = lastDaily.EndDt.AddMinutes(-3 * 1440);
// Hourly uses hourly's timestamp and hourly's interval for lookback calculation
var expectedMinimumDt = lastHourly.EndDt.AddMinutes(-3 * 60);
tasks[0].MinimumDt!.Value.ShouldBe(expectedMinimumDt, TimeSpan.FromSeconds(1));
}