Merge branch 'master' of https://git.saherelm.ir/saherelm/xEventService
This commit is contained in:
+12
-81
@@ -18,7 +18,7 @@ namespace xEventService.DI
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
public static XEventServiceConfiguration GetXEventServiceConfigurations(
|
||||
public static XEventServiceConfiguration GetXEventServiceConfiguration(
|
||||
this IConfiguration source
|
||||
)
|
||||
{
|
||||
@@ -36,14 +36,14 @@ namespace xEventService.DI
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
public static void AddXEventServiceConfigurations(
|
||||
public static void AddXEventServiceConfiguration(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration
|
||||
)
|
||||
{
|
||||
//
|
||||
var config = configuration.GetXEventServiceConfigurations();
|
||||
services.AddXEventServiceConfigurations(config);
|
||||
var config = configuration.GetXEventServiceConfiguration();
|
||||
services.AddXEventServiceConfiguration(config);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -51,14 +51,20 @@ namespace xEventService.DI
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
public static void AddXEventServiceConfigurations(
|
||||
public static void AddXEventServiceConfiguration(
|
||||
this IServiceCollection services,
|
||||
XEventServiceConfiguration configuration
|
||||
)
|
||||
{
|
||||
//
|
||||
// Validate ...
|
||||
if (!configuration.IsValid())
|
||||
var isValid = configuration.IsValid() &&
|
||||
(configuration.Broker == XEventBroker.XKafka ||
|
||||
(configuration.Broker == XEventBroker.XZeroMQ &&
|
||||
configuration.ZeroMQ.IsValid()) ||
|
||||
(configuration.Broker == XEventBroker.XRabbitMQ &&
|
||||
configuration.RabbitMQ.IsValid()));
|
||||
if (!isValid)
|
||||
{
|
||||
//
|
||||
Log("Registration Failed, due Invalid Configuration ...");
|
||||
@@ -70,25 +76,6 @@ namespace xEventService.DI
|
||||
services.AddSingleton(configuration);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Service ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="configuration"></param>
|
||||
/// <param name="lifeTime"></param>
|
||||
public static void AddXEventService(
|
||||
this IServiceCollection source,
|
||||
XEventServiceConfiguration configuration,
|
||||
ServiceLifetime lifeTime = ServiceLifetime.Scoped
|
||||
)
|
||||
{
|
||||
//
|
||||
source.AddEventService(
|
||||
lifeTime: lifeTime,
|
||||
configuration: configuration
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
#region Private ...
|
||||
/// <summary>
|
||||
@@ -104,62 +91,6 @@ namespace xEventService.DI
|
||||
{
|
||||
Console.WriteLine($"{XLogTag} => {message}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register Event Service ...
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="configuration"></param>
|
||||
/// <param name="lifeTime"></param>
|
||||
private static void AddEventService(
|
||||
this IServiceCollection source,
|
||||
XEventServiceConfiguration configuration,
|
||||
ServiceLifetime lifeTime = ServiceLifetime.Scoped
|
||||
)
|
||||
{
|
||||
//
|
||||
// Validate ...
|
||||
if (!configuration.IsValid())
|
||||
{
|
||||
//
|
||||
Log("Initialization Failed due Invalid Configuration ...");
|
||||
XException.InvalidConfiguration.Throw();
|
||||
}
|
||||
|
||||
//
|
||||
// Register based on Broker ...
|
||||
switch (configuration.Broker)
|
||||
{
|
||||
//
|
||||
case XEventBroker.XKafka:
|
||||
source.Add(
|
||||
new ServiceDescriptor(typeof(IXKafkaProducerService), typeof(XKafkaProducerService), lifeTime)
|
||||
);
|
||||
break;
|
||||
|
||||
//
|
||||
case XEventBroker.XZeroMQ:
|
||||
source.Add(
|
||||
new ServiceDescriptor(typeof(IXZeroMQProducerService), typeof(XZeroMQProducerService), lifeTime)
|
||||
);
|
||||
break;
|
||||
|
||||
//
|
||||
case XEventBroker.XRabbitMQ:
|
||||
source.Add(
|
||||
new ServiceDescriptor(typeof(IXRabbitMQProducerService), typeof(XRabbitMQProducerService), lifeTime)
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
source.Add(
|
||||
new ServiceDescriptor(typeof(IXEventServiceProvider), typeof(XEventServiceProvider), lifeTime)
|
||||
);
|
||||
|
||||
//
|
||||
Log($"Service Registered Sucessfull, Provider: {configuration.Broker.GetStringValue()}");
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user