DatabaseOptionsSetup.cs 832 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
using Microsoft.Extensions.Options;

namespace API.Options.Database;

public class DatabaseOptionsSetup : IConfigureOptions<DatabaseOptions>
{

    private const string _cofigurationSectionName = "DatabaseOptions"; // From appsettings.json

    #region Using ctor DI to access configuration
    private readonly IConfiguration _configuration;
    public DatabaseOptionsSetup(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    #endregion

    public void Configure(DatabaseOptions options)
    {
        var connectionString = _configuration.GetConnectionString("DefaultConnection");

        options.ConnectionString = connectionString!; // Not null

        // Get string values from section, and parsing them
        _configuration.GetSection(_cofigurationSectionName).Bind(options);
    }
}