Files
Swarm/DysonNetwork.Shared/Configurator/ConfigureService.cs

32 lines
1.0 KiB
C#

using DysonNetwork.Shared.Registry;
using Microsoft.Extensions.Configuration;
using System.Text;
using System.Text.Json;
namespace DysonNetwork.Shared.Configurator;
public class ConfigureService(ServiceRegistrar registrar)
{
private readonly ServiceRegistrar _registrar = registrar;
public async Task<JsonDocument> GetConfigurationsAsync()
{
var instance = await _registrar.GetServiceInstanceAsync("config", "http");
using var client = new HttpClient();
var response = await client.GetStringAsync($"http://{instance}/config");
var json = JsonDocument.Parse(response);
return json;
}
public async Task ConfigureAppAsync(IConfigurationBuilder builder)
{
var configs = await GetConfigurationsAsync();
if (configs.RootElement.TryGetProperty("connection_strings", out var csElement))
{
var csJson = csElement.ToString();
var stream = new MemoryStream(Encoding.UTF8.GetBytes(csJson));
builder.AddJsonStream(stream);
}
}
}