From 0bf8979a09765192de1e2f62a484cd9b5796e671 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 13 Sep 2024 16:30:52 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20Einf=C3=BChrung=20des=20IUnique-Interfaces=20f=C3=BCr=20Entit=C3=A4ten=20und=20DTOs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Aktualisiertes IBasicCRUDService-Interface, um Konsistenz bei einzigartigen Identifikatoren mit IUnique durchzusetzen - DIExtensions-Methoden angepasst, um IUnique-Einschränkungen für DTOs und Entitäten einzuschließen --- .../Application/IBasicCRUDService.cs | 2 +- DigitalData.Core.Application/BasicCRUDService.cs | 3 ++- DigitalData.Core.Application/DIExtensions.cs | 5 +++-- DigitalData.Core.Infrastructure/DIExtensions.cs | 5 +++-- DigitalData.Core.sln | 10 +++++----- 5 files changed, 14 insertions(+), 11 deletions(-) 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