From e93e12e6705ef6c3a7e3d61b6005324c7b8f22ba Mon Sep 17 00:00:00 2001 From: Jared Nance Date: Fri, 7 Sep 2018 20:30:38 -0700 Subject: [PATCH] fix(#394): register shorthand service types during discovery --- .../Graph/ServiceDiscoveryFacade.cs | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs b/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs index ca156718fe..b29df8bca1 100644 --- a/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs +++ b/src/JsonApiDotNetCore/Graph/ServiceDiscoveryFacade.cs @@ -107,12 +107,25 @@ private string FormatResourceName(Type resourceType, IResourceNameFormatter reso /// The assembly to search for resources in. public ServiceDiscoveryFacade AddAssemblyServices(Assembly assembly) { + RegisterServiceImplementations(assembly, typeof(IResourceService<>)); RegisterServiceImplementations(assembly, typeof(IResourceService<,>)); + + RegisterServiceImplementations(assembly, typeof(ICreateService<>)); RegisterServiceImplementations(assembly, typeof(ICreateService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetAllService<>)); RegisterServiceImplementations(assembly, typeof(IGetAllService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetByIdService<>)); RegisterServiceImplementations(assembly, typeof(IGetByIdService<,>)); + + RegisterServiceImplementations(assembly, typeof(IGetRelationshipService<>)); RegisterServiceImplementations(assembly, typeof(IGetRelationshipService<,>)); + + RegisterServiceImplementations(assembly, typeof(IUpdateService<>)); RegisterServiceImplementations(assembly, typeof(IUpdateService<,>)); + + RegisterServiceImplementations(assembly, typeof(IDeleteService<>)); RegisterServiceImplementations(assembly, typeof(IDeleteService<,>)); return this; @@ -122,8 +135,19 @@ public ServiceDiscoveryFacade AddAssemblyServices(Assembly assembly) /// Add implementations to container. /// /// The assembly to search for resources in. - public ServiceDiscoveryFacade AddAssemblyRepositories(Assembly assembly) - => RegisterServiceImplementations(assembly, typeof(IEntityRepository<,>)); + public ServiceDiscoveryFacade AddAssemblyRepositories(Assembly assembly) + { + RegisterServiceImplementations(assembly, typeof(IEntityRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityRepository<,>)); + + RegisterServiceImplementations(assembly, typeof(IEntityWriteRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityWriteRepository<,>)); + + RegisterServiceImplementations(assembly, typeof(IEntityReadRepository<>)); + RegisterServiceImplementations(assembly, typeof(IEntityReadRepository<,>)); + + return this; + } private ServiceDiscoveryFacade RegisterServiceImplementations(Assembly assembly, Type interfaceType) {