Vault.Demo.hashicorp.Console/Helper/ConnectionStringProvider.cs
2025-06-24 10:07:39 +05:30

29 lines
926 B
C#

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<string> 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() ?? throw new ArgumentException()
: string.Empty;
}
}