Initial ...
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using xCommons.Extensions;
|
||||
using xFileService.DI;
|
||||
using xMessageService.DI;
|
||||
using xServices.Configurations;
|
||||
using xServices.Constants;
|
||||
using xServices.TermsConditions.DI;
|
||||
using xStorageService.DI;
|
||||
using xStringService.DI;
|
||||
using xTagService.DI;
|
||||
|
||||
namespace xServices.DI
|
||||
{
|
||||
public static class XDIHelperExtension
|
||||
{
|
||||
/// <summary>
|
||||
/// Retrive Services Configurations ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
public static XServicesConfiguration GetXServicesConfiguration(
|
||||
this IConfiguration source
|
||||
)
|
||||
{
|
||||
//
|
||||
var xConfig = source
|
||||
.GetSection(ConfigurationNodeNames.SERVICES_NODE);
|
||||
var result = xConfig.Get<XServicesConfiguration>();
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Service Configuration ...
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
public static void AddXServicesConfiguration(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration
|
||||
)
|
||||
{
|
||||
//
|
||||
var config = configuration
|
||||
.GetXServicesConfiguration();
|
||||
if (config.IsNull())
|
||||
{
|
||||
config = new XServicesConfiguration();
|
||||
}
|
||||
|
||||
//
|
||||
services.AddSingleton<XServicesConfiguration>(config);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Service Configuration ...
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
public static void AddXServicesConfiguration(
|
||||
this IServiceCollection services,
|
||||
XServicesConfiguration configuration
|
||||
)
|
||||
{
|
||||
//
|
||||
if (configuration.IsNull())
|
||||
{
|
||||
configuration = new XServicesConfiguration();
|
||||
}
|
||||
|
||||
//
|
||||
services.AddSingleton<XServicesConfiguration>(configuration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Services ...
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="lifeTime"></param>
|
||||
public static void AddXServices(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration,
|
||||
ServiceLifetime lifeTime = ServiceLifetime.Transient
|
||||
)
|
||||
{
|
||||
//
|
||||
var config = configuration.GetXServicesConfiguration();
|
||||
|
||||
//
|
||||
AddServices(
|
||||
config: config,
|
||||
services: services,
|
||||
lifeTime: lifeTime,
|
||||
configuration: configuration
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Services ...
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
/// <param name="lifeTime"></param>
|
||||
public static void AddXServices(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration,
|
||||
XServicesConfiguration config,
|
||||
ServiceLifetime lifeTime = ServiceLifetime.Transient
|
||||
)
|
||||
{
|
||||
//
|
||||
AddServices(
|
||||
config: config,
|
||||
services: services,
|
||||
lifeTime: lifeTime,
|
||||
configuration: configuration
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Use All Required Middlewares ...
|
||||
/// </summary>
|
||||
/// <param name="app"></param>
|
||||
public static void UseXServices(this IApplicationBuilder app)
|
||||
{
|
||||
//
|
||||
// Use Storage Service ...
|
||||
app.UseXStorageService();
|
||||
}
|
||||
|
||||
//
|
||||
#region Private ...
|
||||
/// <summary>
|
||||
/// Register Required Services ...
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="config"></param>
|
||||
/// <param name="lifeTime"></param>
|
||||
private static void AddServices(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration,
|
||||
XServicesConfiguration config = null,
|
||||
ServiceLifetime lifeTime = ServiceLifetime.Transient
|
||||
)
|
||||
{
|
||||
//
|
||||
// Check config ...
|
||||
if (config.IsNull())
|
||||
{
|
||||
config = new XServicesConfiguration();
|
||||
}
|
||||
|
||||
//
|
||||
// Tag Service ...
|
||||
services.AddXTagService(lifeTime: lifeTime);
|
||||
|
||||
//
|
||||
// Storage Service ...
|
||||
services.AddXStorageService(configuration);
|
||||
|
||||
//
|
||||
// File Service ...
|
||||
services.AddXFileService(lifeTime: lifeTime);
|
||||
|
||||
//
|
||||
// Message Service ...
|
||||
services.AddXMessageService(config: configuration);
|
||||
|
||||
//
|
||||
// String Servicce ...
|
||||
services.AddXStringService(lifeTime: lifeTime);
|
||||
|
||||
//
|
||||
// Terms and Conditions Service ...
|
||||
services.AddXTermsConditionsService(lifeTime: lifeTime);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user