This commit is contained in:
2026-08-15 10:49:08 +03:30
parent 561542ea0a
commit a4bcde5994
14 changed files with 285 additions and 11 deletions
+87
View File
@@ -0,0 +1,87 @@
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using xAiApi.Configurations;
using xAiApi.Constants;
using xAiApi.Extensions;
using xCommons.Extensions;
using xExceptions.Constants;
namespace xAiApi.DI
{
public static partial class XDIHelperExtension
{
/// <summary>
/// Extract AI Configuration ...
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static XAiApiConfiguration GetXAiApiConfiguration(this IConfiguration source)
{
//
XAiApiConfiguration result = null;
//
var section = source.GetSection(ConfigurationNodeNames.AI_API_NODE);
if (!section.IsNull())
{
result = section.Get<XAiApiConfiguration>();
}
//
return result;
}
/// <summary>
/// Register AiApi Configuration ...
/// </summary>
/// <param name="source"></param>
/// <param name="configuration"></param>
public static void AddXAiApiConfiguration(
this IServiceCollection source,
IConfiguration configuration
)
{
//
var apiConfig = configuration.GetXAiApiConfiguration();
source.AddXAiApiConfiguration(apiConfig);
}
/// <summary>
/// Register AiApi Configuration ...
/// </summary>
/// <param name="source"></param>
/// <param name="configuration"></param>
public static void AddXAiApiConfiguration(
this IServiceCollection source,
XAiApiConfiguration configuration
)
{
//
if (!configuration.IsValid())
{
XException.InvalidConfiguration.Throw();
}
//
source.AddSingleton(configuration);
}
//
#region Private ...
/// <summary>
/// a LogTag for Service ...
/// </summary>
private static string XLogTag = XAiApiConstants.XDILogTag;
/// <summary>
/// print a log in Console ...
/// </summary>
/// <param name="message"></param>
private static void Log(string message)
{
Console.WriteLine($"{XLogTag} => {message}");
}
#endregion
}
}