Config
This commit is contained in:
@@ -11,7 +11,8 @@ namespace Musify.Infrastructure.Configuration
|
||||
serviceDescriptors
|
||||
.AddValidatedConfiguration<DatabaseConfiguration>(configuration, DatabaseConfiguration.SectionName)
|
||||
.AddValidatedConfiguration<KeycloakConfiguration>(configuration, KeycloakConfiguration.SectionName)
|
||||
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName);
|
||||
.AddValidatedConfiguration<InfrastructureStorageConfiguration>(configuration, InfrastructureStorageConfiguration.SectionName)
|
||||
.AddValidatedConfiguration<MessagingConfiguration>(configuration, MessagingConfiguration.SectionName);
|
||||
|
||||
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)
|
||||
.AddStorageHandler()
|
||||
.AddPictureHandler()
|
||||
.AddMassTransitClient(configuration)
|
||||
.AddMassTransitClient()
|
||||
.AddScoped<IEventBus, MassTransitEventBus>()
|
||||
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace Musify.Infrastructure
|
||||
.AddDatabase(configuration)
|
||||
.AddStorageHandler()
|
||||
.AddPictureHandler()
|
||||
.AddMassTransitConsumers(configuration)
|
||||
.AddMassTransitConsumers()
|
||||
.AddScoped<IEventBus, MassTransitEventBus>()
|
||||
.AddScoped<IProcessTrackingStore, ProcessTrackingStore>();
|
||||
|
||||
|
||||
+17
-22
@@ -1,6 +1,6 @@
|
||||
using MassTransit;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Infrastructure.Configuration;
|
||||
using Musify.Infrastructure.Messaging.Activities;
|
||||
using Musify.Infrastructure.Messaging.Activities.Arguments;
|
||||
using Musify.Infrastructure.Messaging.Consumers;
|
||||
@@ -8,20 +8,22 @@ using Musify.Infrastructure.Messaging.Filters;
|
||||
|
||||
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 =>
|
||||
{
|
||||
options.UsingRabbitMq((_, busFactoryConfigurator) =>
|
||||
ConfigureRabbitMqHost(busFactoryConfigurator, configuration));
|
||||
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
||||
ConfigureRabbitMqHost(
|
||||
busFactoryConfigurator,
|
||||
busRegistrationContext.GetRequiredService<MessagingConfiguration>()));
|
||||
} );
|
||||
|
||||
return serviceDescriptors;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors, IConfiguration configuration)
|
||||
public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors)
|
||||
{
|
||||
serviceDescriptors.AddMassTransit(options =>
|
||||
{
|
||||
@@ -33,7 +35,9 @@ namespace Musify.Infrastructure.Messaging
|
||||
|
||||
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
||||
{
|
||||
ConfigureRabbitMqHost(busFactoryConfigurator, configuration);
|
||||
ConfigureRabbitMqHost(
|
||||
busFactoryConfigurator,
|
||||
busRegistrationContext.GetRequiredService<MessagingConfiguration>());
|
||||
|
||||
busFactoryConfigurator.UseConsumeFilter(typeof(ProcessTrackingConsumeFilter<>), busRegistrationContext);
|
||||
|
||||
@@ -67,23 +71,14 @@ namespace Musify.Infrastructure.Messaging
|
||||
return serviceDescriptors;
|
||||
}
|
||||
|
||||
static void ConfigureRabbitMqHost(IRabbitMqBusFactoryConfigurator busFactoryConfigurator, IConfiguration configuration)
|
||||
static void ConfigureRabbitMqHost(
|
||||
IRabbitMqBusFactoryConfigurator busFactoryConfigurator,
|
||||
MessagingConfiguration massTransitConfiguration)
|
||||
{
|
||||
var section = configuration.GetSection("MassTransit");
|
||||
|
||||
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 =>
|
||||
busFactoryConfigurator.Host(massTransitConfiguration.Host, options =>
|
||||
{
|
||||
options.Username(username);
|
||||
options.Password(password);
|
||||
options.Username(massTransitConfiguration.Username);
|
||||
options.Password(massTransitConfiguration.Password);
|
||||
} );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user