feat:Initial commit
This commit is contained in:
21
StoreService/Extensions/DatabaseExtensions.cs
Normal file
21
StoreService/Extensions/DatabaseExtensions.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using StoreService.Database;
|
||||
|
||||
namespace StoreService.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Database related DI registrations.
|
||||
/// </summary>
|
||||
public static class DatabaseExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers the EF Core DbContext (PostgreSQL).
|
||||
/// </summary>
|
||||
public static IServiceCollection AddDatabase(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddDbContext<ApplicationContext>(options =>
|
||||
options.UseNpgsql(configuration.GetConnectionString("StoreDb")));
|
||||
return services;
|
||||
}
|
||||
}
|
||||
|
||||
16
StoreService/Extensions/DomainServicesExtensions.cs
Normal file
16
StoreService/Extensions/DomainServicesExtensions.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using StoreService.Services;
|
||||
|
||||
namespace StoreService.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Domain service layer DI registrations.
|
||||
/// </summary>
|
||||
public static class DomainServicesExtensions
|
||||
{
|
||||
public static IServiceCollection AddDomainServices(this IServiceCollection services)
|
||||
{
|
||||
services.AddScoped<IOrderService, OrderService>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
|
||||
24
StoreService/Extensions/LoggingExtensions.cs
Normal file
24
StoreService/Extensions/LoggingExtensions.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Serilog;
|
||||
|
||||
namespace StoreService.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Logging related extensions (Serilog configuration).
|
||||
/// </summary>
|
||||
public static class LoggingExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Adds Serilog configuration for the host using appsettings.json (Serilog section).
|
||||
/// </summary>
|
||||
public static IHostBuilder AddSerilogLogging(this IHostBuilder hostBuilder)
|
||||
{
|
||||
hostBuilder.UseSerilog((ctx, services, cfg) =>
|
||||
{
|
||||
cfg.ReadFrom.Configuration(ctx.Configuration)
|
||||
.ReadFrom.Services(services)
|
||||
.Enrich.FromLogContext();
|
||||
});
|
||||
return hostBuilder;
|
||||
}
|
||||
}
|
||||
|
||||
18
StoreService/Extensions/RepositoryExtensions.cs
Normal file
18
StoreService/Extensions/RepositoryExtensions.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using StoreService.Repositories;
|
||||
|
||||
namespace StoreService.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// Repository & UnitOfWork registrations.
|
||||
/// </summary>
|
||||
public static class RepositoryExtensions
|
||||
{
|
||||
public static IServiceCollection AddRepositories(this IServiceCollection services)
|
||||
{
|
||||
// Open generic registration for repositories
|
||||
services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>));
|
||||
// Unit of work (will receive repositories via constructor injection)
|
||||
services.AddScoped<IUnitOfWork, UnitOfWork>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user