Dependency injection
This commit is contained in:
@@ -11,7 +11,9 @@
|
||||
<PackageReference Include="AWSSDK.S3" Version="4.0.19" />
|
||||
<PackageReference Include="Keycloak.Net.Core" Version="1.0.38" />
|
||||
<PackageReference Include="MassTransit" Version="9.0.1" />
|
||||
<PackageReference Include="MassTransit.RabbitMQ" Version="9.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.5" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.1" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
using MassTransit;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Infrastructure.Messaging.Consumers;
|
||||
|
||||
namespace Musify.Infrastructure.Messaging
|
||||
{
|
||||
public static class MassTransitDependencyInjection
|
||||
{
|
||||
public static void AddMassTransitHandler(this IServiceCollection serviceDescriptors, IConfiguration configuration)
|
||||
{
|
||||
serviceDescriptors.AddMassTransit(options =>
|
||||
{
|
||||
options.AddConsumer<PictureResizerConsumer>();
|
||||
|
||||
options.UsingRabbitMq((busRegistrationContext, busFactoryConfigurator) =>
|
||||
{
|
||||
var section = configuration.GetSection("MassTransit");
|
||||
|
||||
var host = section["Host"]
|
||||
?? throw new InvalidOperationException("MassTransit:Host configuration is missing.");
|
||||
|
||||
busFactoryConfigurator.Host(host);
|
||||
|
||||
busFactoryConfigurator.ReceiveEndpoint(PictureResizerConsumer.QueueName, endpointConfigurator =>
|
||||
{
|
||||
endpointConfigurator.ConfigureConsumer<PictureResizerConsumer>(busRegistrationContext);
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Application.Contracts.Infrastructure;
|
||||
|
||||
namespace Musify.Infrastructure.Persistence
|
||||
{
|
||||
public static class DatabaseDependencyInjection
|
||||
{
|
||||
public static void AddDatabase(this IServiceCollection serviceDescriptors, IConfiguration configuration)
|
||||
{
|
||||
var connectionString = configuration.GetConnectionString("Default")
|
||||
?? throw new InvalidOperationException("Default Connection connection string not found.");
|
||||
|
||||
serviceDescriptors.AddDbContext<Database>(options =>
|
||||
{
|
||||
options.UseNpgsql(connectionString);
|
||||
} );
|
||||
|
||||
serviceDescriptors.AddScoped<IDatabase>(serviceProvider => serviceProvider.GetRequiredService<Database>());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Application.Contracts.Infrastructure;
|
||||
|
||||
namespace Musify.Infrastructure.Pictures
|
||||
{
|
||||
public static class PictureDependencyInjection
|
||||
{
|
||||
public static void AddPictureHandler(this IServiceCollection serviceDescriptors)
|
||||
{
|
||||
serviceDescriptors.AddScoped<IPictureHandler, PictureHandler>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Musify.Application.Contracts.Infrastructure;
|
||||
|
||||
namespace Musify.Infrastructure.Storage
|
||||
{
|
||||
public static class StorageDependencyInjection
|
||||
{
|
||||
public static void AddStorageHandler(this IServiceCollection serviceDescriptors)
|
||||
{
|
||||
serviceDescriptors.AddScoped<IStorageHandler, StorageHandler>();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user