Files
xCommons/Extensions/IConfigurationExtensions.cs
T
2026-05-11 23:24:44 +03:30

53 lines
1.9 KiB
C#

using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
using xCommons.Configurations;
using xCommons.Constants;
namespace xCommons.Extensions
{
public static partial class IConfigurationExtensions
{
/// <summary>
/// Retrieve AppConfiguration from Configurations
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XAppConfiguration GetXAppConfiguration(this IConfiguration source)
{
//
var xMessageResourceTitlesConfigSection = source
.GetSection(ConfigurationNodeNames.MESSAGE_RESOURCE_TITLES_NODE);
//
var result = new XAppConfiguration
{
Name = source[nameof(XAppConfiguration.Name)],
Version = source[nameof(XAppConfiguration.Version)],
XPoweredValue = source[nameof(XAppConfiguration.XPoweredValue)],
WelcomeMessage = source[nameof(XAppConfiguration.WelcomeMessage)],
AllowedOrigins = source
.GetSection(nameof(XAppConfiguration.AllowedOrigins))
.Get<IEnumerable<string>>(),
DefaultLanguage = source[nameof(XAppConfiguration.DefaultLanguage)],
MessageResourceTitles = xMessageResourceTitlesConfigSection
.Get<XMessageResourceTitles>()
};
//
return result;
}
/// <summary>
/// Retrieve Swagger Configurations
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XSwaggerConfiguration GetXSwaggerConfiguration(this IConfiguration source)
{
//
var xSwaggerConfigSection = source
.GetSection(ConfigurationNodeNames.SWAGGER_NODE);
return xSwaggerConfigSection.Get<XSwaggerConfiguration>();
}
}
}