using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using xAiApi.Data.Configurations;
using xAiApi.Data.Constants;
using xAiApi.Data.Interfaces;
using xCommons.Extensions;
namespace xAiApi.Data.Extensions
{
public static class XAiApiDbSeederExtension
{
///
/// Extract XDbSeeder Configurations From IConfiguration
///
///
///
public static XAiApiDbSeederConfig GetXDbSeederConfiguration(
this IConfiguration configuration
)
{
//
var xDbSeederConfigSection = configuration.GetSection(ConfigurationNodeNames.DATA_SERVICE_DB_SEED_NODE);
return xDbSeederConfigSection.Get();
}
///
/// Register XDbSeeder Configurations on DI
///
///
///
public static void AddXDbSeederConfiguration(
this IServiceCollection services,
IConfiguration configuration
)
{
//
var dbSeederConfig = configuration.GetXDbSeederConfiguration();
if (dbSeederConfig.IsNull())
{
return;
}
//
services.AddSingleton(dbSeederConfig);
}
///
/// Register XDbSeeder Configurations on DI
///
///
///
public static void AddXDbSeederConfiguration(
this IServiceCollection services,
XAiApiDbSeederConfig configuration
)
{
//
if (configuration.IsNull())
{
return;
}
//
services.AddSingleton(configuration);
}
}
}