Files
xSaherElmAiApi/Data/Extensions/XAiApiDbSeederExtension.cs
T

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);
}
}
}