using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Vault.Demo.hashicorp.Console.Handler; using VaultSharp; namespace Vault.Demo.hashicorp.Console.Helper; internal class ConnectionStringProvider : IConnectionStringProvider { private readonly IValueClientProvider _vaultClient; public ConnectionStringProvider(IValueClientProvider vaultClient) => this._vaultClient = vaultClient; public async Task GetConnectionString(string key) { ArgumentException.ThrowIfNullOrWhiteSpace(key, nameof(key)); var client = _vaultClient.GetValueClient(); var secrate = await _vaultClient.GetSecret(client); return secrate.Data.Data.TryGetValue(key, out var val) ? val?.ToString() ?? string.Empty : string.Empty; } }