From f5285567b51a9fc24446f6b90e17cec702870026 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Wed, 31 Jan 2024 07:26:50 +0100 Subject: [PATCH] Implement Address; improvements, refactoring, fixes, etc... --- TIAM.Database.Test/AdminDalTest.cs | 13 ++++++++++++- TIAM.Database.Test/UserDalTests.cs | 3 ++- TIAM.Database/DataLayers/Users/UserDal.cs | 3 ++- .../DbContexts/Admins/AdminDbContext.cs | 2 ++ TIAM.Database/DbContexts/Users/IUserDbContext.cs | 2 +- TIAM.Database/DbContexts/Users/UserDbContext.cs | 3 +++ TIAM.Database/DbSets/Users/IUserDbSet.cs | 3 ++- .../Users/UserEntityTypeConfigurations.cs | 16 +++++++++++++++- TIAM.Database/TIAM.Database.csproj | 1 + TIAM.Entities/Profiles/IProfile.cs | 3 ++- TIAM.Entities/Profiles/Profile.cs | 3 ++- TIAM.Entities/Users/IUser.cs | 3 ++- TIAM.Entities/Users/IUserDto.cs | 3 ++- TIAM.Entities/Users/User.cs | 3 ++- TIAM.Models/Dtos/Profiles/ProfileDto.cs | 1 + TIAM.Models/Dtos/Users/UserModelDto.cs | 3 ++- 16 files changed, 53 insertions(+), 12 deletions(-) diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index 856a9049..a77cbbf2 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -66,7 +66,8 @@ namespace TIAM.Database.Test var product = Dal.GetProductById(productId, true); Assert.IsNotNull(product, "Product is null"); - Assert.IsNotNull(product.Profile); + Assert.IsNotNull(product.Profile, "Profile is null"); + Assert.IsNotNull(product.Profile.Address, "Profile.Address is null"); return product; } @@ -79,6 +80,9 @@ namespace TIAM.Database.Test Assert.IsNotNull(products, "Products is null"); Assert.IsTrue(products.Count > 0, "No products found"); + Assert.IsNotNull(products[0].Profile, "Profile is null"); + Assert.IsNotNull(products[0].Profile.Address, "Profile.Address is null"); + Assert.IsNotNull(products[0].ServiceProvider, "ServiceProvider is null"); } @@ -92,6 +96,9 @@ namespace TIAM.Database.Test Assert.IsNotNull(products, "Products is null"); Assert.IsTrue(products.Count > 0, "No products found"); + Assert.IsNotNull(products[0].Profile, "Profile is null"); + Assert.IsNotNull(products[0].Profile.Address, "Profile.Address is null"); + Assert.IsNotNull(products[0].ServiceProvider, "ServiceProvider is null"); } @@ -135,6 +142,9 @@ namespace TIAM.Database.Test Assert.IsNotNull(userProductMapping.User, "User is null"); Assert.IsNotNull(userProductMapping.Product, "Product is null"); + Assert.IsNotNull(userProductMapping.User.Profile.Address, "User.Profile.Address is null"); + Assert.IsNotNull(userProductMapping.Product.Profile.Address, "Product.Profile.Address is null"); + Assert.IsTrue(userProductMapping.Transfers?.Count != 0, "Transfers?.Count == 0"); Assert.IsTrue(userProductMapping.Id == userProductMappingId, "userProductMapping.Id != userProductMappingId"); } @@ -258,6 +268,7 @@ namespace TIAM.Database.Test Assert.IsNotNull(user); Assert.IsNotNull(user.Profile); + Assert.IsNotNull(user.Profile.Address, "Profile.Address is null"); Assert.IsTrue(user.Id == userId, "user.Id != userId"); diff --git a/TIAM.Database.Test/UserDalTests.cs b/TIAM.Database.Test/UserDalTests.cs index f1b3f69c..c0eb5287 100644 --- a/TIAM.Database.Test/UserDalTests.cs +++ b/TIAM.Database.Test/UserDalTests.cs @@ -15,11 +15,12 @@ using TIAM.Entities.Users; using TIAM.Models.Dtos.Users; using AyCode.Interfaces.Users.Dtos; using TIAM.Entities.ServiceProviders; +using TIAM.Entities.Addresses; namespace TIAM.Database.Test { [TestClass] - public class UserDalTests : AcUserDalTestBase + public class UserDalTests : AcUserDalTestBase { private Mock _mockContext; diff --git a/TIAM.Database/DataLayers/Users/UserDal.cs b/TIAM.Database/DataLayers/Users/UserDal.cs index 5dddeb4d..8f9dcdcc 100644 --- a/TIAM.Database/DataLayers/Users/UserDal.cs +++ b/TIAM.Database/DataLayers/Users/UserDal.cs @@ -10,6 +10,7 @@ using AyCode.Entities.Users; using Microsoft.EntityFrameworkCore; using TIAM.Database.DbContexts.Users; using TIAM.Database.DbSets.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Users; @@ -17,7 +18,7 @@ using TIAM.Models.Dtos.Users; namespace TIAM.Database.DataLayers.Users { - public class UserDal : AcUserDalBase + public class UserDal : AcUserDalBase { public UserDal() : base() diff --git a/TIAM.Database/DbContexts/Admins/AdminDbContext.cs b/TIAM.Database/DbContexts/Admins/AdminDbContext.cs index 2ec3af26..8843e378 100644 --- a/TIAM.Database/DbContexts/Admins/AdminDbContext.cs +++ b/TIAM.Database/DbContexts/Admins/AdminDbContext.cs @@ -14,6 +14,7 @@ using TIAM.Entities.Drivers; using TIAM.Entities.Emails; using TIAM.Entities.Permissions; using TIAM.Entities.Products; +using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.TransferDestinations; using TIAM.Entities.Transfers; @@ -61,6 +62,7 @@ namespace TIAM.Database.DbContexts.Admins base.OnModelCreating(modelBuilder); new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity()); new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); diff --git a/TIAM.Database/DbContexts/Users/IUserDbContext.cs b/TIAM.Database/DbContexts/Users/IUserDbContext.cs index d59e1269..d3bb81d2 100644 --- a/TIAM.Database/DbContexts/Users/IUserDbContext.cs +++ b/TIAM.Database/DbContexts/Users/IUserDbContext.cs @@ -12,5 +12,5 @@ using TIAM.Entities.Users; namespace TIAM.Database.DbContexts.Users; public interface IUserDbContext : - IAcUserDbContextBase, IUserDbSet, IAddressDbSet, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet + IAcUserDbContextBase, IUserDbSet, IAddressDbSet, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet { } \ No newline at end of file diff --git a/TIAM.Database/DbContexts/Users/UserDbContext.cs b/TIAM.Database/DbContexts/Users/UserDbContext.cs index faee1b2b..16f9004a 100644 --- a/TIAM.Database/DbContexts/Users/UserDbContext.cs +++ b/TIAM.Database/DbContexts/Users/UserDbContext.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks; using AyCode.Database.DbContexts; using AyCode.Database.DbContexts.Users; +using AyCode.Database.ModelBuilders.Profiles; using AyCode.Entities.Users; using AyCode.Interfaces.Users; using Microsoft.EntityFrameworkCore; @@ -19,6 +20,7 @@ using TIAM.Entities.Addresses; using TIAM.Entities.Emails; using TIAM.Entities.Permissions; using TIAM.Entities.Products; +using TIAM.Entities.Profiles; using TIAM.Entities.TransferDestinations; using TIAM.Entities.Transfers; using TIAM.Entities.Users; @@ -65,6 +67,7 @@ namespace TIAM.Database.DbContexts.Users base.OnModelCreating(modelBuilder); new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity()); new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); new TransferEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity()); diff --git a/TIAM.Database/DbSets/Users/IUserDbSet.cs b/TIAM.Database/DbSets/Users/IUserDbSet.cs index ddc6b6f4..92b7a85f 100644 --- a/TIAM.Database/DbSets/Users/IUserDbSet.cs +++ b/TIAM.Database/DbSets/Users/IUserDbSet.cs @@ -1,10 +1,11 @@ using AyCode.Database.DbSets.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Users; namespace TIAM.Database.DbSets.Users; -public interface IUserDbSet : IAcUserDbSet +public interface IUserDbSet : IAcUserDbSet { } \ No newline at end of file diff --git a/TIAM.Database/ModelBuilders/Users/UserEntityTypeConfigurations.cs b/TIAM.Database/ModelBuilders/Users/UserEntityTypeConfigurations.cs index 328e710f..a600ad0a 100644 --- a/TIAM.Database/ModelBuilders/Users/UserEntityTypeConfigurations.cs +++ b/TIAM.Database/ModelBuilders/Users/UserEntityTypeConfigurations.cs @@ -3,9 +3,11 @@ using AyCode.Database.ModelBuilders.Users; using AyCode.Interfaces.Users; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; +using TIAM.Entities.Addresses; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Users; +using static AyCode.Database.ModelBuilders.Profiles.AcProfileEntityTypeConfigurations; namespace TIAM.Database.ModelBuilders.Users; @@ -25,7 +27,7 @@ public class UserProductMappingEntityTypeTransferConfiguration : IAcEntityTypeCo builder.BuildUserProductMappingToRelations(false); } } -public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration //IAcEntityTypeConfiguration// +public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration //IAcEntityTypeConfiguration// { public override void Configure(EntityTypeBuilder builder) { @@ -34,3 +36,15 @@ public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfigu builder.BuildUserToUserProductMappingRelation(); } } + +public class ProfileEntityTypeConfigurations : AcProfileEntityTypeDefaultConfiguration +{ + public override void Configure(EntityTypeBuilder builder) + { + base.Configure(builder); + + //builder.BuildEntityToAddressRelation(); + } +} + + diff --git a/TIAM.Database/TIAM.Database.csproj b/TIAM.Database/TIAM.Database.csproj index 96dc3336..44bf565e 100644 --- a/TIAM.Database/TIAM.Database.csproj +++ b/TIAM.Database/TIAM.Database.csproj @@ -21,6 +21,7 @@ + diff --git a/TIAM.Entities/Profiles/IProfile.cs b/TIAM.Entities/Profiles/IProfile.cs index 638bd078..7f0a75e5 100644 --- a/TIAM.Entities/Profiles/IProfile.cs +++ b/TIAM.Entities/Profiles/IProfile.cs @@ -1,8 +1,9 @@ using AyCode.Interfaces.Profiles; +using TIAM.Entities.Addresses; namespace TIAM.Entities.Profiles; -public interface IProfile : IAcProfile, IProfileDto +public interface IProfile : IAcProfile
, IProfileDto { } \ No newline at end of file diff --git a/TIAM.Entities/Profiles/Profile.cs b/TIAM.Entities/Profiles/Profile.cs index a1c80c44..9f24e800 100644 --- a/TIAM.Entities/Profiles/Profile.cs +++ b/TIAM.Entities/Profiles/Profile.cs @@ -1,8 +1,9 @@ using AyCode.Entities.Profiles; +using TIAM.Entities.Addresses; namespace TIAM.Entities.Profiles; -public class Profile : AcProfile, IProfile +public class Profile : AcProfile
, IProfile { } \ No newline at end of file diff --git a/TIAM.Entities/Users/IUser.cs b/TIAM.Entities/Users/IUser.cs index 442d2964..c66d7899 100644 --- a/TIAM.Entities/Users/IUser.cs +++ b/TIAM.Entities/Users/IUser.cs @@ -1,11 +1,12 @@ using AyCode.Interfaces.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; namespace TIAM.Entities.Users; -public interface IUser : IAcUser, IUserDto +public interface IUser : IAcUser, IUserDto { public List Products { get; } diff --git a/TIAM.Entities/Users/IUserDto.cs b/TIAM.Entities/Users/IUserDto.cs index 4b985e0d..977cf60b 100644 --- a/TIAM.Entities/Users/IUserDto.cs +++ b/TIAM.Entities/Users/IUserDto.cs @@ -1,11 +1,12 @@ using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Users; using AyCode.Interfaces.Users.Dtos; +using TIAM.Entities.Addresses; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; namespace TIAM.Entities.Users; -public interface IUserDto : IAcUserDtoBase +public interface IUserDto : IAcUserDtoBase { } \ No newline at end of file diff --git a/TIAM.Entities/Users/User.cs b/TIAM.Entities/Users/User.cs index ba921f91..ad8d65a9 100644 --- a/TIAM.Entities/Users/User.cs +++ b/TIAM.Entities/Users/User.cs @@ -5,13 +5,14 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using AyCode.Entities.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; namespace TIAM.Entities.Users { - public class User : AcUser, IUser + public class User : AcUser, IUser { public virtual List Products { get; } = new(); diff --git a/TIAM.Models/Dtos/Profiles/ProfileDto.cs b/TIAM.Models/Dtos/Profiles/ProfileDto.cs index 0fa895b0..58443ccd 100644 --- a/TIAM.Models/Dtos/Profiles/ProfileDto.cs +++ b/TIAM.Models/Dtos/Profiles/ProfileDto.cs @@ -6,6 +6,7 @@ public class ProfileDto : IProfileDto { public Guid Id { get; set; } public Guid? UserMediaId { get; set; } + public Guid AddressId { get; set; } public string Name { get; set; } public string? Description { get; set; } diff --git a/TIAM.Models/Dtos/Users/UserModelDto.cs b/TIAM.Models/Dtos/Users/UserModelDto.cs index 891af110..608f5494 100644 --- a/TIAM.Models/Dtos/Users/UserModelDto.cs +++ b/TIAM.Models/Dtos/Users/UserModelDto.cs @@ -1,6 +1,7 @@ using AyCode.Entities.Profiles; using AyCode.Interfaces.Users.Dtos; using AyCode.Models.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; @@ -9,7 +10,7 @@ using TIAM.Models.Dtos.Profiles; namespace TIAM.Models.Dtos.Users; -public class UserModelDto : AcUserModelDtoBase, IProductsRelation +public class UserModelDto : AcUserModelDtoBase, IProductsRelation { public List UserProductMappings { get; set; } public List Products { get; set; }