Files
xSaherElmAiApi/AI/Extensions/XAiApiConfigurationExtension.cs
T
2026-04-10 17:41:01 +03:30

70 lines
1.9 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using xAiApi.AI.Configuration;
using xAiApi.AI.Constants;
using xCommons.Extensions;
namespace xAiApi.AI.Extensions
{
public static class XAiApiConfigurationExtension
{
/// <summary>
/// Extract Configuration ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XAiApiConfiguration GetXAiApiConfiguration(this IConfiguration source)
{
//
var section = source.GetSection(ConfigurationNodeNames.AI_API_SERVICE_NODE);
var result = section.Get<XAiApiConfiguration>();
//
return result;
}
/// <summary>
/// Add XAiApiConfiguration ...
/// </summary>
/// <param name="source"></param>
/// <param name="configuration"></param>
public static void AddXAiApiConfiguration(
this IServiceCollection source,
XAiApiConfiguration configuration
)
{
//
if (!configuration.IsValid())
{
return;
}
//
source.AddSingleton(configuration);
}
/// <summary>
/// Validate XAiApiConfiguration ...
/// </summary>
/// <param name="configuration"></param>
/// <returns></returns>
public static bool IsValid(this XAiApiConfiguration configuration)
{
//
var result =
!configuration.IsNull() &&
!configuration.Url.IsNullOrEmpty() &&
configuration.Url.IsValidUrl() &&
!configuration.TextModel.IsNullOrEmpty();
//
if (!result)
{
return result;
}
//
return result;
}
}
}