diff --git a/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs b/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs index 30ab738..ef8d41b 100644 --- a/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs +++ b/Infrastructure/MassTransit/DependencyInjection/MassTransitDependencyInjection.cs @@ -11,6 +11,8 @@ using Musify.Infrastructure.MassTransit.Activities.Logs; using Musify.Infrastructure.MassTransit.Filters; using Musify.Infrastructure.MassTransit.RoutingSlip.Builders; using Musify.Infrastructure.MassTransit.Activities.Files; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Options; namespace Musify.Infrastructure.MassTransit { @@ -29,8 +31,16 @@ namespace Musify.Infrastructure.MassTransit return serviceDescriptors; } - public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors) + public static IServiceCollection AddMassTransitConsumers(this IServiceCollection serviceDescriptors, IConfiguration configuration) { + serviceDescriptors + .AddOptionsWithValidateOnStart() + .Bind(configuration.GetRequiredSection(WorkerConfiguration.SectionName)) + .ValidateDataAnnotations(); + + serviceDescriptors.AddSingleton(serviceProvider => + serviceProvider.GetRequiredService>().Value); + serviceDescriptors.AddScoped(); serviceDescriptors.AddScoped(); serviceDescriptors.AddScoped(); diff --git a/Infrastructure/Observability/OpenTelemetryDependencyInjection.cs b/Infrastructure/Observability/OpenTelemetryDependencyInjection.cs index 67b30d5..cc923d0 100644 --- a/Infrastructure/Observability/OpenTelemetryDependencyInjection.cs +++ b/Infrastructure/Observability/OpenTelemetryDependencyInjection.cs @@ -1,15 +1,26 @@ +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Musify.Infrastructure.Configuration; using OpenTelemetry.Exporter; using OpenTelemetry.Metrics; using OpenTelemetry.Trace; +using SixLabors.ImageSharp; namespace Musify.Infrastructure.Observability { public static class OpenTelemetryDependencyInjection { - public static IServiceCollection AddInfrastructureOpenTelemetry(this IServiceCollection serviceDescriptors) + public static IServiceCollection AddInfrastructureOpenTelemetry(this IServiceCollection serviceDescriptors, IConfiguration configuration) { + serviceDescriptors + .AddOptionsWithValidateOnStart() + .Bind(configuration.GetRequiredSection(OpenTelemetryConfiguration.SectionName)) + .ValidateDataAnnotations(); + + serviceDescriptors.AddSingleton(serviceProvider => + serviceProvider.GetRequiredService>().Value); + serviceDescriptors .AddOptions() .Configure((exporterOptions, openTelemetryConfiguration) =>