mirror of
https://github.com/alexhopeoconnor/bom-local-service.git
synced 2026-10-04 03:28:11 +10:00
- Refactor TimeParsingService to parse time strings to UTC only - Remove minutesAgo from RadarFrame and FrameMetadata models - Update CaptureFramesStep to extract UTC timestamps directly - Update CacheService to store/load ObservationTime instead of MinutesAgo - Update BomRadarService to use AbsoluteObservationTime directly - Remove all backward compatibility code for old cache folders - Update documentation and test SPA to calculate minutes ago on client - Fix step registration to register concrete types for DI resolution - Fix hosted service registration to use reflection correctly
27 lines
1.0 KiB
C#
27 lines
1.0 KiB
C#
using BomLocalService.Services.Scraping.Workflows;
|
|
|
|
namespace BomLocalService.Services.Scraping;
|
|
|
|
public class WorkflowFactory : IWorkflowFactory
|
|
{
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
|
public WorkflowFactory(IServiceProvider serviceProvider)
|
|
{
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
|
|
public IWorkflow<TResponse> GetWorkflow<TResponse>(string name)
|
|
{
|
|
return name switch
|
|
{
|
|
"RadarScraping" => _serviceProvider.GetRequiredService<IRadarScrapingWorkflow>() as IWorkflow<TResponse>
|
|
?? throw new InvalidOperationException($"IRadarScrapingWorkflow is not IWorkflow<{typeof(TResponse).Name}>"),
|
|
"TemperatureMap" => _serviceProvider.GetRequiredService<ITemperatureMapWorkflow>() as IWorkflow<TResponse>
|
|
?? throw new InvalidOperationException($"ITemperatureMapWorkflow is not IWorkflow<{typeof(TResponse).Name}>"),
|
|
_ => throw new ArgumentException($"Unknown workflow: {name}")
|
|
};
|
|
}
|
|
}
|
|
|