From f5e713302298f1f9faaa6987bb0fea14b5245fa3 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Wed, 13 Dec 2023 22:05:12 +0100 Subject: [PATCH] refactoring, improvements, fixes, etc... --- AyCode.Database/DbContexts/AcDbContextBase.cs | 1 - .../AcDbContextExtension.cs | 6 +++--- .../DbContexts/IAcEntityTypeConfiguration.cs | 7 +++++++ .../Users/AcUserEntityTypeBuilderExtensions.cs | 17 +++++++++++++++++ .../Users/AcUserEntityTypeConfigurations.cs | 14 ++++++++++++++ .../ServiceProviders/ServiceProviderBase.cs | 9 +++++---- 6 files changed, 46 insertions(+), 8 deletions(-) rename AyCode.Database/{Extensions => DbContexts}/AcDbContextExtension.cs (96%) create mode 100644 AyCode.Database/DbContexts/IAcEntityTypeConfiguration.cs create mode 100644 AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs create mode 100644 AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs diff --git a/AyCode.Database/DbContexts/AcDbContextBase.cs b/AyCode.Database/DbContexts/AcDbContextBase.cs index 5022ed8..e76bf71 100644 --- a/AyCode.Database/DbContexts/AcDbContextBase.cs +++ b/AyCode.Database/DbContexts/AcDbContextBase.cs @@ -1,6 +1,5 @@ using System.Runtime.CompilerServices; using Microsoft.EntityFrameworkCore; -using AyCode.Database.Extensions; using AyCode.Interfaces.TimeStampInfo; namespace AyCode.Database.DbContexts; diff --git a/AyCode.Database/Extensions/AcDbContextExtension.cs b/AyCode.Database/DbContexts/AcDbContextExtension.cs similarity index 96% rename from AyCode.Database/Extensions/AcDbContextExtension.cs rename to AyCode.Database/DbContexts/AcDbContextExtension.cs index 7f772bb..32bffa9 100644 --- a/AyCode.Database/Extensions/AcDbContextExtension.cs +++ b/AyCode.Database/DbContexts/AcDbContextExtension.cs @@ -11,9 +11,9 @@ using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -namespace AyCode.Database.Extensions +namespace AyCode.Database.DbContexts { - public static class AcDbContextExtension + public static class AcDbContextExtension { public static IEntityType? GetEntityType(this DbContext ctx) @@ -52,7 +52,7 @@ namespace AyCode.Database.Extensions foreach (var prop in originalValues.Properties) { - if (object.Equals(originalValues[prop.Name], currentValues[prop.Name]) == false) + if (Equals(originalValues[prop.Name], currentValues[prop.Name]) == false) { yield return prop; } diff --git a/AyCode.Database/DbContexts/IAcEntityTypeConfiguration.cs b/AyCode.Database/DbContexts/IAcEntityTypeConfiguration.cs new file mode 100644 index 0000000..1d873c8 --- /dev/null +++ b/AyCode.Database/DbContexts/IAcEntityTypeConfiguration.cs @@ -0,0 +1,7 @@ +using AyCode.Interfaces.Entities; +using Microsoft.EntityFrameworkCore; + +namespace AyCode.Database.DbContexts; + +public interface IAcEntityTypeConfiguration : IEntityTypeConfiguration where TEntity : class, IEntity +{ } \ No newline at end of file diff --git a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs new file mode 100644 index 0000000..77b19bb --- /dev/null +++ b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs @@ -0,0 +1,17 @@ +using AyCode.Interfaces.Users; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace AyCode.Database.ModelBuilders.Users; + +public static class AcUserEntityTypeBuilderExtensions +{ + public static void BuildUserToProfileRelation(this EntityTypeBuilder modelBuilder) where TUser : class, IUserBase + { + //throw new NotImplementedException(); + } + + public static void BuildUserToAddressRelation(this EntityTypeBuilder modelBuilder) where TUser : class, IUserBase + { + //throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs new file mode 100644 index 0000000..10774e0 --- /dev/null +++ b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs @@ -0,0 +1,14 @@ +using AyCode.Database.DbContexts; +using AyCode.Interfaces.Users; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace AyCode.Database.ModelBuilders.Users; + +public abstract class AcUserEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration where TUser : class, IUserBase +{ + public virtual void Configure(EntityTypeBuilder modelBuilder) + { + modelBuilder.BuildUserToProfileRelation(); + modelBuilder.BuildUserToAddressRelation(); + } +} diff --git a/AyCode.Entities/ServiceProviders/ServiceProviderBase.cs b/AyCode.Entities/ServiceProviders/ServiceProviderBase.cs index 4a0f7da..b56c56e 100644 --- a/AyCode.Entities/ServiceProviders/ServiceProviderBase.cs +++ b/AyCode.Entities/ServiceProviders/ServiceProviderBase.cs @@ -6,12 +6,13 @@ using AyCode.Interfaces.ServiceProviders; namespace AyCode.Entities.ServiceProviders { [Table("ServiceProviders")] - public class ServiceProviderBase : IServiceProviderBase + public abstract class ServiceProviderBase : IServiceProviderBase { - public ServiceProviderBase() { } + protected ServiceProviderBase() { } - public ServiceProviderBase(string name, Guid ownerId ) : this(Guid.NewGuid(), name, ownerId) { } - public ServiceProviderBase(Guid id, string name, Guid ownerId) : this() + protected ServiceProviderBase(string name, Guid ownerId ) : this(Guid.NewGuid(), name, ownerId) { } + + protected ServiceProviderBase(Guid id, string name, Guid ownerId) : this() { Id = id; Name = name;