Commit 37261dcf authored by James Yeung's avatar James Yeung Committed by Steve Smith

move interfaces from core to shared kernel project (#92)

parent 23adf414
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using System.Linq;
namespace CleanArchitecture.Core
......
using System.Threading.Tasks;
using Ardalis.GuardClauses;
using CleanArchitecture.Core.Events;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
namespace CleanArchitecture.Core.Services
{
......
using Autofac;
using Autofac.Extensions.DependencyInjection;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Infrastructure.Data;
using Microsoft.Extensions.DependencyInjection;
using System;
using Autofac;
using Autofac.Extensions.DependencyInjection;
using CleanArchitecture.Core;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Infrastructure.Data;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Reflection;
namespace CleanArchitecture.Infrastructure
{
public static class ContainerSetup
{
public static IServiceProvider InitializeWeb(Assembly webAssembly, IServiceCollection services) =>
new AutofacServiceProvider(BaseAutofacInitialization(setupAction =>
{
setupAction.Populate(services);
setupAction.RegisterAssemblyTypes(webAssembly).AsImplementedInterfaces();
}));
public static IContainer BaseAutofacInitialization(Action<ContainerBuilder> setupAction = null)
{
var builder = new ContainerBuilder();
var coreAssembly = Assembly.GetAssembly(typeof(IRepository));
var infrastructureAssembly = Assembly.GetAssembly(typeof(EfRepository));
builder.RegisterAssemblyTypes(coreAssembly, infrastructureAssembly).AsImplementedInterfaces();
setupAction?.Invoke(builder);
return builder.Build();
}
}
public static class ContainerSetup
{
public static IServiceProvider InitializeWeb(Assembly webAssembly, IServiceCollection services) =>
new AutofacServiceProvider(BaseAutofacInitialization(setupAction =>
{
setupAction.Populate(services);
setupAction.RegisterAssemblyTypes(webAssembly).AsImplementedInterfaces();
}));
public static IContainer BaseAutofacInitialization(Action<ContainerBuilder> setupAction = null)
{
var builder = new ContainerBuilder();
var coreAssembly = Assembly.GetAssembly(typeof(DatabasePopulator));
var infrastructureAssembly = Assembly.GetAssembly(typeof(EfRepository));
var sharedKernelAssembly = Assembly.GetAssembly(typeof(IRepository));
builder.RegisterAssemblyTypes(sharedKernelAssembly, coreAssembly, infrastructureAssembly).AsImplementedInterfaces();
setupAction?.Invoke(builder);
return builder.Build();
}
}
}
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Threading;
......
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Core.SharedKernel;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
......
using Autofac;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Core.SharedKernel;
using System;
using System.Collections;
......
using System.Threading.Tasks;
using CleanArchitecture.Core.SharedKernel;
namespace CleanArchitecture.Core.Interfaces
namespace CleanArchitecture.SharedKernel.Interfaces
{
public interface IDomainEventDispatcher
{
......
using System.Threading.Tasks;
using CleanArchitecture.Core.SharedKernel;
namespace CleanArchitecture.Core.Interfaces
namespace CleanArchitecture.SharedKernel.Interfaces
{
public interface IHandle<in T> where T : BaseDomainEvent
{
......
using CleanArchitecture.Core.SharedKernel;
using System.Collections.Generic;
namespace CleanArchitecture.Core.Interfaces
namespace CleanArchitecture.SharedKernel.Interfaces
{
public interface IRepository
{
......@@ -11,4 +11,4 @@ namespace CleanArchitecture.Core.Interfaces
void Update<T>(T entity) where T : BaseEntity;
void Delete<T>(T entity) where T : BaseEntity;
}
}
}
\ No newline at end of file
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Web.ApiModels;
using CleanArchitecture.Web.Filters;
using Microsoft.AspNetCore.Mvc;
......
using CleanArchitecture.Core;
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Web.ApiModels;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
......
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Collections.Generic;
......
using CleanArchitecture.Core;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace CleanArchitecture.Web.Pages.ToDoRazorPage
......
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Infrastructure.Data;
using CleanArchitecture.UnitTests;
using CleanArchitecture.Web;
......
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Infrastructure.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
......
using System.Threading.Tasks;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.SharedKernel.Interfaces;
using CleanArchitecture.Core.SharedKernel;
namespace CleanArchitecture.UnitTests
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment