27 lines
925 B
C#
27 lines
925 B
C#
using Microsoft.Extensions.Options;
|
|
using VigilCare.Simulation;
|
|
|
|
public sealed class SimulationClientFactory : ISimulationClientFactory
|
|
{
|
|
private readonly IHttpClientFactory _http;
|
|
private readonly SimulationOptions _options;
|
|
|
|
public SimulationClientFactory(IHttpClientFactory http, IOptions<SimulationOptions> options)
|
|
{
|
|
_http = http;
|
|
_options = options.Value;
|
|
}
|
|
|
|
public async Task<VigilCareApiClient> CreateAsync(CancellationToken ct = default)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(_options.RunnerPassword))
|
|
throw new InvalidOperationException(
|
|
"Simulation:RunnerPassword is required when Simulation:Enabled is true.");
|
|
|
|
var http = _http.CreateClient("simulation-loopback");
|
|
var client = new VigilCareApiClient(http);
|
|
await client.LoginAsync(_options.RunnerUsername, _options.RunnerPassword);
|
|
return client;
|
|
}
|
|
}
|