make presentation layer not directly depend on DAL

This commit is contained in:
Collin M. Barrett 2017-10-24 17:57:21 -05:00
parent 127446e47c
commit f6c61e0d71
5 changed files with 14 additions and 35 deletions

View file

@ -1,5 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
namespace FilterLists.Api.DependencyInjection.Extensions
{
@ -7,12 +6,7 @@ public static class ConfigureServicesCollection
{
public static void AddFilterListsApi(this IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(options =>
{
//TODO: determine why null values still get returned
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
services.AddMvc();
}
}
}

View file

@ -26,7 +26,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FilterLists.Data\FilterLists.Data.csproj" />
<ProjectReference Include="..\FilterLists.Services\FilterLists.Services.csproj" />
</ItemGroup>

View file

@ -1,6 +1,5 @@
using System.IO;
using FilterLists.Api.DependencyInjection.Extensions;
using FilterLists.Data.DependencyInjection.Extensions;
using FilterLists.Services.DependencyInjection.Extensions;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.HttpOverrides;
@ -22,8 +21,7 @@ public Startup(IConfiguration configuration)
public void ConfigureServices(IServiceCollection services)
{
services.AddFilterListsRepositories(Configuration);
services.AddFilterListsServices();
services.AddFilterListsServices(Configuration);
services.AddFilterListsApi();
services.AddSwaggerGen(c =>
{

View file

@ -1,22 +0,0 @@
using FilterLists.Data.Contexts;
using FilterLists.Data.Repositories.Contracts;
using FilterLists.Data.Repositories.Implementations;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace FilterLists.Data.DependencyInjection.Extensions
{
public static class ConfigureServicesCollection
{
public static void AddFilterListsRepositories(this IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton(c => configuration);
services.AddEntityFrameworkMySql().AddDbContext<FilterListsDbContext>(options =>
options.UseMySql(configuration.GetConnectionString("FilterListsConnection")));
services.TryAddScoped<IListRepository, ListRepository>();
services.TryAddScoped<ITableCsvRepository, TableCsvRepository>();
}
}
}

View file

@ -1,5 +1,10 @@
using FilterLists.Services.Contracts;
using FilterLists.Data.Contexts;
using FilterLists.Data.Repositories.Contracts;
using FilterLists.Data.Repositories.Implementations;
using FilterLists.Services.Contracts;
using FilterLists.Services.Implementations;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
@ -7,8 +12,13 @@ namespace FilterLists.Services.DependencyInjection.Extensions
{
public static class ConfigureServicesCollection
{
public static void AddFilterListsServices(this IServiceCollection services)
public static void AddFilterListsServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton(c => configuration);
services.AddEntityFrameworkMySql().AddDbContext<FilterListsDbContext>(options =>
options.UseMySql(configuration.GetConnectionString("FilterListsConnection")));
services.TryAddScoped<IListRepository, ListRepository>();
services.TryAddScoped<ITableCsvRepository, TableCsvRepository>();
services.TryAddScoped<IListService, ListService>();
services.TryAddScoped<ITableService, TableService>();
}