< Summary

Information
Class: MRA.Infrastructure.Database.Providers.AzureAppConfigurationDatabase
Assembly: MRA.Infrastructure
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Database\Providers\AzureAppConfigurationDatabase.cs
Line coverage
77%
Covered lines: 17
Uncovered lines: 5
Coverable lines: 22
Total lines: 49
Line coverage: 77.2%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
GetValue(...)100%210%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Database\Providers\AzureAppConfigurationDatabase.cs

#LineLine coverage
 1using Microsoft.Extensions.Configuration;
 2using MRA.Infrastructure.Settings;
 3using Microsoft.Extensions.Configuration.AzureAppConfiguration;
 4using Microsoft.Extensions.Logging;
 5using MRA.Infrastructure.RemoteConfig;
 6
 7namespace MRA.Infrastructure.Database.Providers;
 8
 9public class AzureAppConfigurationDatabase : IRemoteConfigDatabase
 10{
 11    private readonly AppSettings _appSettings;
 12    private readonly IConfigurationRoot _configuration;
 13    private readonly ILogger<AzureAppConfigurationDatabase> _logger;
 14
 115    public AzureAppConfigurationDatabase(
 116        AppSettings appConfig,
 117        ILogger<AzureAppConfigurationDatabase> logger
 118        )
 19    {
 120        _logger = logger;
 121        _appSettings = appConfig;
 22        try
 23        {
 124            _configuration = new ConfigurationBuilder()
 125                .AddAzureAppConfiguration(options =>
 126                {
 127                    options.Connect(_appSettings.RemoteConfig.ConnectionString)
 128                           .Select(KeyFilter.Any);
 129                })
 130                .Build();
 131        }catch(Exception ex)
 32        {
 133            _logger.LogError(ex, "Error when initializing Azure App Configuration");
 134        }
 135    }
 36
 37    public T GetValue<T>(RemoteConfigSetting<T> remoteConfig)
 38    {
 39        try
 40        {
 041            return _configuration.GetValue(remoteConfig.Key.ToString(), remoteConfig.DefaultValue);
 42        }
 043        catch(Exception ex)
 44        {
 045            _logger.LogError(ex, "Error when getting Azure App Configuration with key '{Key}'. Returning default value i
 046            return remoteConfig.DefaultValue;
 47        }
 048    }
 49}