Config
This commit is contained in:
@@ -11,7 +11,8 @@ namespace Musify.Infrastructure.Configuration
|
|||||||
serviceDescriptors
|
serviceDescriptors
|
||||||
.AddValidatedConfiguration<DatabaseConfiguration>(configuration, DatabaseConfiguration.SectionName)
|
.AddValidatedConfiguration<DatabaseConfiguration>(configuration, DatabaseConfiguration.SectionName)
|
||||||
.AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName)
|
.AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName)
|
||||||
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName);
|
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName)
|
||||||
|
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName);
|
||||||
|
|
||||||
return serviceDescriptors;
|
return serviceDescriptors;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Musify.Infrastructure.Configuration
|
||||||
|
{
|
||||||
|
public class MessagingConfiguration
|
||||||
|
{
|
||||||
|
public const string SectionName = "Messaging";
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public required string Host { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public required string Username { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public required string Password { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,7 @@ namespace Musify.Infrastructure
|
|||||||
.AddKeycloakService(configuration)
|
.AddKeycloakService(configuration)
|
||||||
.AddStorageHandler()
|
.AddStorageHandler()
|
||||||
.AddPictureHandler()
|
.AddPictureHandler()
|
||||||
.AddMassTransitClient(configuration)
|
.AddMassTransitClient()
|
||||||
.AddScoped<IEventBus, MassTransitEventBus>()
|
.AddScoped<IEventBus, MassTransitEventBus>()
|
||||||
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ namespace Musify.Infrastructure
|
|||||||
.AddDatabase(configuration)
|
.AddDatabase(configuration)
|
||||||
.AddStorageHandler()
|
.AddStorageHandler()
|
||||||
.AddPictureHandler()
|
.AddPictureHandler()
|
||||||
.AddMassTransitConsumers(configuration)
|
.AddMassTransitConsumers()
|
||||||
.AddScoped<IEventBus, MassTransitEventBus>()
|
.AddScoped<IEventBus, MassTransitEventBus>()
|
||||||
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
||||||
|
|
||||||
|
|||||||
+17
-22
@@ -1,6 +1,6 @@
|
|||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Musify.Infrastructure.Configuration;
|
||||||
using Musify.Infrastructure.Messaging.Activities;
|
using Musify.Infrastructure.Messaging.Activities;
|
||||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||||
using Musify.Infrastructure.Messaging.Consumers;
|
using Musify.Infrastructure.Messaging.Consumers;
|
||||||
@@ -8,20 +8,22 @@ using Musify.Infrastructure.Messaging.Filters;
|
|||||||
|
|
||||||
namespace Musify.Infrastructure.Messaging
|
namespace Musify.Infrastructure.Messaging
|
||||||
{
|
{
|
||||||
public static class MassTransitDependencyInjection
|
public static class MessagingDependencyInjection
|
||||||
{
|
{
|
||||||
public static IServiceCollection AddMassTransitClient(this IServiceCollection serviceDescriptors, IConfiguration configuration)
|
public static IServiceCollection AddMassTransitClient(this IServiceCollection serviceDescriptors)
|
||||||
{
|
{
|
||||||
serviceDescriptors.AddMassTransit(options =>
|
serviceDescriptors.AddMassTransit(options =>
|
||||||
{
|
{
|
||||||
options.UsingRabbitMq((_, busFactoryConfigurator) =>
|
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
||||||
ConfigureRabbitMqHost(busFactoryConfigurator, configuration));
|
ConfigureRabbitMqHost(
|
||||||
|
busFactoryConfigurator,
|
||||||
|
busRegistrationContext.GetRequiredService<MessagingConfiguration>()));
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return serviceDescriptors;
|
return serviceDescriptors;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors, IConfiguration configuration)
|
public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors)
|
||||||
{
|
{
|
||||||
serviceDescriptors.AddMassTransit(options =>
|
serviceDescriptors.AddMassTransit(options =>
|
||||||
{
|
{
|
||||||
@@ -33,7 +35,9 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
|
|
||||||
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
||||||
{
|
{
|
||||||
ConfigureRabbitMqHost(busFactoryConfigurator, configuration);
|
ConfigureRabbitMqHost(
|
||||||
|
busFactoryConfigurator,
|
||||||
|
busRegistrationContext.GetRequiredService<MessagingConfiguration>());
|
||||||
|
|
||||||
busFactoryConfigurator.UseConsumeFilter(typeof(ProcessTrackingConsumeFilter<>), busRegistrationContext);
|
busFactoryConfigurator.UseConsumeFilter(typeof(ProcessTrackingConsumeFilter<>), busRegistrationContext);
|
||||||
|
|
||||||
@@ -67,23 +71,14 @@ namespace Musify.Infrastructure.Messaging
|
|||||||
return serviceDescriptors;
|
return serviceDescriptors;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ConfigureRabbitMqHost(IRabbitMqBusFactoryConfigurator busFactoryConfigurator, IConfiguration configuration)
|
static void ConfigureRabbitMqHost(
|
||||||
|
IRabbitMqBusFactoryConfigurator busFactoryConfigurator,
|
||||||
|
MessagingConfiguration massTransitConfiguration)
|
||||||
{
|
{
|
||||||
var section = configuration.GetSection("MassTransit");
|
busFactoryConfigurator.Host(massTransitConfiguration.Host, options =>
|
||||||
|
|
||||||
var host = section["Host"]
|
|
||||||
?? throw new InvalidOperationException("MassTransit:Host configuration value not found.");
|
|
||||||
|
|
||||||
var username = section["Username"]
|
|
||||||
?? throw new InvalidOperationException("MassTransit:Username configuration value not found.");
|
|
||||||
|
|
||||||
var password = section["Password"]
|
|
||||||
?? throw new InvalidOperationException("MassTransit:Password configuration value not found.");
|
|
||||||
|
|
||||||
busFactoryConfigurator.Host(host, options =>
|
|
||||||
{
|
{
|
||||||
options.Username(username);
|
options.Username(massTransitConfiguration.Username);
|
||||||
options.Password(password);
|
options.Password(massTransitConfiguration.Password);
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user