feat(directory): 📦 add MediatR

This commit is contained in:
Collin M. Barrett 2020-08-23 09:59:50 -05:00
parent 11c06b252e
commit ed3a370ed5
5 changed files with 29 additions and 10 deletions

View file

@ -27,7 +27,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
<ProjectReference Include="..\FilterLists.Directory.Application\FilterLists.Directory.Application.csproj" />
</ItemGroup>
</Project>

View file

@ -1,5 +1,4 @@
using FilterLists.Directory.Infrastructure.Persistence.Queries;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Facade;
using FilterLists.Directory.Application;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
@ -20,16 +19,14 @@ public Startup(IConfiguration configuration)
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.RegisterQueryFacade(Configuration);
services.AddApplicationServices(Configuration);
}
public static void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
}
}

View file

@ -11,10 +11,15 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="8.1.0" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,16 @@
using FilterLists.Directory.Infrastructure;
using MediatR;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace FilterLists.Directory.Application
{
public static class ServicesRegistrationExtension
{
public static void AddApplicationServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddMediatR(typeof(ServicesRegistrationExtension).Assembly);
services.AddInfrastructureServices(configuration);
}
}
}

View file

@ -1,12 +1,13 @@
using Microsoft.EntityFrameworkCore;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Facade;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace FilterLists.Directory.Infrastructure.Persistence.Queries.Facade
namespace FilterLists.Directory.Infrastructure
{
public static class QueryFacadeExtension
public static class ServiceRegistrationExtension
{
public static void RegisterQueryFacade(this IServiceCollection services, IConfiguration configuration)
public static void AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddDbContextPool<QueryDbContext>(o =>
o.UseNpgsql(configuration.GetConnectionString("DirectoryConnection")));