67 lines
2.0 KiB
C#
67 lines
2.0 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Extract XDbSeeder Configurations From IConfiguration
|
|
/// </summary>
|
|
/// <param name="configuration"></param>
|
|
/// <returns></returns>
|
|
public static XAiApiDbSeederConfig GetXDbSeederConfiguration(
|
|
this IConfiguration configuration
|
|
)
|
|
{
|
|
//
|
|
var xDbSeederConfigSection = configuration.GetSection(ConfigurationNodeNames.DATA_SERVICE_DB_SEED_NODE);
|
|
return xDbSeederConfigSection.Get<XAiApiDbSeederConfig>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Register XDbSeeder Configurations on DI
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configuration"></param>
|
|
public static void AddXDbSeederConfiguration(
|
|
this IServiceCollection services,
|
|
IConfiguration configuration
|
|
)
|
|
{
|
|
//
|
|
var dbSeederConfig = configuration.GetXDbSeederConfiguration();
|
|
if (dbSeederConfig.IsNull())
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
services.AddSingleton<IXAiApiDbSeederConfig>(dbSeederConfig);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Register XDbSeeder Configurations on DI
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configuration"></param>
|
|
public static void AddXDbSeederConfiguration(
|
|
this IServiceCollection services,
|
|
XAiApiDbSeederConfig configuration
|
|
)
|
|
{
|
|
//
|
|
if (configuration.IsNull())
|
|
{
|
|
return;
|
|
}
|
|
|
|
//
|
|
services.AddSingleton<IXAiApiDbSeederConfig>(configuration);
|
|
}
|
|
}
|
|
} |