diff --git a/DigitalData.Core.Abstractions/Application/IBasicCRUDService.cs b/DigitalData.Core.Abstractions/Application/IBasicCRUDService.cs index 318b524..cda2c89 100644 --- a/DigitalData.Core.Abstractions/Application/IBasicCRUDService.cs +++ b/DigitalData.Core.Abstractions/Application/IBasicCRUDService.cs @@ -16,7 +16,7 @@ namespace DigitalData.Core.Abstractions.Application /// allowing for a more concise and maintainable codebase when implementing services for such entities. /// public interface IBasicCRUDService : ICRUDService - where TDto : class where TEntity : class + where TDto : class, IUnique where TEntity : class, IUnique { } } \ No newline at end of file diff --git a/DigitalData.Core.Application/BasicCRUDService.cs b/DigitalData.Core.Application/BasicCRUDService.cs index 860bc63..93ccaec 100644 --- a/DigitalData.Core.Application/BasicCRUDService.cs +++ b/DigitalData.Core.Application/BasicCRUDService.cs @@ -1,4 +1,5 @@ using AutoMapper; +using DigitalData.Core.Abstractions; using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Abstractions.Infrastructure; @@ -19,7 +20,7 @@ namespace DigitalData.Core.Application /// public class BasicCRUDService : CRUDService, IBasicCRUDService - where TCRUDRepository : ICRUDRepository where TDto : class where TEntity : class + where TCRUDRepository : ICRUDRepository where TDto : class, IUnique where TEntity : class, IUnique { /// /// Initializes a new instance of the BasicCRUDService with the specified repository, translation service, and AutoMapper configuration. diff --git a/DigitalData.Core.Application/DIExtensions.cs b/DigitalData.Core.Application/DIExtensions.cs index 270b058..3ccab86 100644 --- a/DigitalData.Core.Application/DIExtensions.cs +++ b/DigitalData.Core.Application/DIExtensions.cs @@ -1,4 +1,5 @@ using AutoMapper; +using DigitalData.Core.Abstractions; using DigitalData.Core.Abstractions.Application; using DigitalData.Core.Abstractions.Infrastructure; using Microsoft.Extensions.DependencyInjection; @@ -23,7 +24,7 @@ namespace DigitalData.Core.Application /// An optional action to configure additional services for the CRUD service. /// The original instance, allowing further configuration. public static IServiceCollection AddCleanBasicCRUDService(this IServiceCollection services, Action? configureService = null) - where TCRUDRepository : ICRUDRepository where TDto : class where TEntity : class where TProfile : Profile + where TCRUDRepository : ICRUDRepository where TDto : class, IUnique where TEntity : class, IUnique where TProfile : Profile { services.AddScoped, BasicCRUDService>(); configureService?.Invoke(services); @@ -47,7 +48,7 @@ namespace DigitalData.Core.Application /// An optional action to configure additional services for the CRUD service. /// The original instance, allowing further configuration. public static IServiceCollection AddCleanCRUDService(this IServiceCollection services, Action? configureService = null) - where TCRUDRepository : ICRUDRepository where TCreateDto : class where TReadDto : class where TUpdateDto : class where TEntity : class where TProfile : Profile + where TCRUDRepository : ICRUDRepository where TCreateDto : class where TReadDto : class where TUpdateDto : class, IUnique where TEntity : class, IUnique where TProfile : Profile { services.AddScoped, CRUDService>(); configureService?.Invoke(services); diff --git a/DigitalData.Core.Infrastructure/DIExtensions.cs b/DigitalData.Core.Infrastructure/DIExtensions.cs index 8b0df4a..3a2b7cd 100644 --- a/DigitalData.Core.Infrastructure/DIExtensions.cs +++ b/DigitalData.Core.Infrastructure/DIExtensions.cs @@ -1,4 +1,5 @@ -using DigitalData.Core.Abstractions.Infrastructure; +using DigitalData.Core.Abstractions; +using DigitalData.Core.Abstractions.Infrastructure; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using System.DirectoryServices; @@ -17,7 +18,7 @@ namespace DigitalData.Core.Infrastructure /// An optional action to configure additional services for the repository. /// The original instance, allowing further configuration. public static IServiceCollection AddCleanCRUDRepository(this IServiceCollection services, Action? configureRepository = null) - where TCRUDRepository : CRUDRepository where TEntity : class where TDbContext : DbContext + where TCRUDRepository : CRUDRepository where TEntity : class, IUnique where TDbContext : DbContext { services.AddScoped, TCRUDRepository>(); configureRepository?.Invoke(services); diff --git a/DigitalData.Core.sln b/DigitalData.Core.sln index f971e0b..e8314a3 100644 --- a/DigitalData.Core.sln +++ b/DigitalData.Core.sln @@ -27,12 +27,12 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Debug|Any CPU.Build.0 = Release|Any CPU {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Release|Any CPU.ActiveCfg = Release|Any CPU {A765EBEA-3D1E-4F36-869B-6D72F87FF3F6}.Release|Any CPU.Build.0 = Release|Any CPU - {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Debug|Any CPU.Build.0 = Release|Any CPU {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Release|Any CPU.ActiveCfg = Release|Any CPU {DB404CD9-CBB8-4771-AB1B-FD4FDE2C28CC}.Release|Any CPU.Build.0 = Release|Any CPU {C57B2480-F632-4691-9C4C-8CC01237203C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -51,7 +51,7 @@ Global {6A80FFEC-9B83-40A7-8C78-124440B48B33}.Debug|Any CPU.Build.0 = Debug|Any CPU {6A80FFEC-9B83-40A7-8C78-124440B48B33}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A80FFEC-9B83-40A7-8C78-124440B48B33}.Release|Any CPU.Build.0 = Release|Any CPU - {13E40DF1-6123-4838-9BF8-086C94E6ADF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13E40DF1-6123-4838-9BF8-086C94E6ADF6}.Debug|Any CPU.ActiveCfg = Release|Any CPU {13E40DF1-6123-4838-9BF8-086C94E6ADF6}.Release|Any CPU.ActiveCfg = Release|Any CPU {13E40DF1-6123-4838-9BF8-086C94E6ADF6}.Release|Any CPU.Build.0 = Release|Any CPU {84B18026-F9A0-4366-BC69-1662D9E7342D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU