Implement Address; improvements, refactoring, fixes, etc...

This commit is contained in:
jozsef.b@aycode.com 2024-01-31 07:26:50 +01:00
parent 2e1630913e
commit f5285567b5
16 changed files with 53 additions and 12 deletions

View File

@ -66,7 +66,8 @@ namespace TIAM.Database.Test
var product = Dal.GetProductById(productId, true); var product = Dal.GetProductById(productId, true);
Assert.IsNotNull(product, "Product is null"); 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; return product;
} }
@ -79,6 +80,9 @@ namespace TIAM.Database.Test
Assert.IsNotNull(products, "Products is null"); Assert.IsNotNull(products, "Products is null");
Assert.IsTrue(products.Count > 0, "No products found"); 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"); Assert.IsNotNull(products[0].ServiceProvider, "ServiceProvider is null");
} }
@ -92,6 +96,9 @@ namespace TIAM.Database.Test
Assert.IsNotNull(products, "Products is null"); Assert.IsNotNull(products, "Products is null");
Assert.IsTrue(products.Count > 0, "No products found"); 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"); 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.User, "User is null");
Assert.IsNotNull(userProductMapping.Product, "Product 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.Transfers?.Count != 0, "Transfers?.Count == 0");
Assert.IsTrue(userProductMapping.Id == userProductMappingId, "userProductMapping.Id != userProductMappingId"); Assert.IsTrue(userProductMapping.Id == userProductMappingId, "userProductMapping.Id != userProductMappingId");
} }
@ -258,6 +268,7 @@ namespace TIAM.Database.Test
Assert.IsNotNull(user); Assert.IsNotNull(user);
Assert.IsNotNull(user.Profile); Assert.IsNotNull(user.Profile);
Assert.IsNotNull(user.Profile.Address, "Profile.Address is null");
Assert.IsTrue(user.Id == userId, "user.Id != userId"); Assert.IsTrue(user.Id == userId, "user.Id != userId");

View File

@ -15,11 +15,12 @@ using TIAM.Entities.Users;
using TIAM.Models.Dtos.Users; using TIAM.Models.Dtos.Users;
using AyCode.Interfaces.Users.Dtos; using AyCode.Interfaces.Users.Dtos;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Addresses;
namespace TIAM.Database.Test namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider> public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>
{ {
private Mock<UserDbContext> _mockContext; private Mock<UserDbContext> _mockContext;

View File

@ -10,6 +10,7 @@ using AyCode.Entities.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using TIAM.Database.DbContexts.Users; using TIAM.Database.DbContexts.Users;
using TIAM.Database.DbSets.Users; using TIAM.Database.DbSets.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Users; using TIAM.Entities.Users;
@ -17,7 +18,7 @@ using TIAM.Models.Dtos.Users;
namespace TIAM.Database.DataLayers.Users namespace TIAM.Database.DataLayers.Users
{ {
public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider> public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>
{ {
public UserDal() : base() public UserDal() : base()

View File

@ -14,6 +14,7 @@ using TIAM.Entities.Drivers;
using TIAM.Entities.Emails; using TIAM.Entities.Emails;
using TIAM.Entities.Permissions; using TIAM.Entities.Permissions;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.TransferDestinations; using TIAM.Entities.TransferDestinations;
using TIAM.Entities.Transfers; using TIAM.Entities.Transfers;
@ -61,6 +62,7 @@ namespace TIAM.Database.DbContexts.Admins
base.OnModelCreating(modelBuilder); base.OnModelCreating(modelBuilder);
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>()); new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity<Profile>());
new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>()); new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>()); new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());

View File

@ -12,5 +12,5 @@ using TIAM.Entities.Users;
namespace TIAM.Database.DbContexts.Users; namespace TIAM.Database.DbContexts.Users;
public interface IUserDbContext : public interface IUserDbContext :
IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>, IUserDbSet, IAddressDbSet, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>, IUserDbSet, IAddressDbSet, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet
{ } { }

View File

@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using AyCode.Database.DbContexts; using AyCode.Database.DbContexts;
using AyCode.Database.DbContexts.Users; using AyCode.Database.DbContexts.Users;
using AyCode.Database.ModelBuilders.Profiles;
using AyCode.Entities.Users; using AyCode.Entities.Users;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
@ -19,6 +20,7 @@ using TIAM.Entities.Addresses;
using TIAM.Entities.Emails; using TIAM.Entities.Emails;
using TIAM.Entities.Permissions; using TIAM.Entities.Permissions;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles;
using TIAM.Entities.TransferDestinations; using TIAM.Entities.TransferDestinations;
using TIAM.Entities.Transfers; using TIAM.Entities.Transfers;
using TIAM.Entities.Users; using TIAM.Entities.Users;
@ -65,6 +67,7 @@ namespace TIAM.Database.DbContexts.Users
base.OnModelCreating(modelBuilder); base.OnModelCreating(modelBuilder);
new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>()); new UserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<User>());
new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity<Profile>());
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>()); new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());
new TransferEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity<Transfer>()); new TransferEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity<Transfer>());

View File

@ -1,10 +1,11 @@
using AyCode.Database.DbSets.Users; using AyCode.Database.DbSets.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Users; using TIAM.Entities.Users;
namespace TIAM.Database.DbSets.Users; namespace TIAM.Database.DbSets.Users;
public interface IUserDbSet : IAcUserDbSet<User, Profile, TiamServiceProvider, UserToServiceProvider> public interface IUserDbSet : IAcUserDbSet<User, Profile, TiamServiceProvider, UserToServiceProvider, Address>
{ {
} }

View File

@ -3,9 +3,11 @@ using AyCode.Database.ModelBuilders.Users;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders; using Microsoft.EntityFrameworkCore.Metadata.Builders;
using TIAM.Entities.Addresses;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Users; using TIAM.Entities.Users;
using static AyCode.Database.ModelBuilders.Profiles.AcProfileEntityTypeConfigurations;
namespace TIAM.Database.ModelBuilders.Users; namespace TIAM.Database.ModelBuilders.Users;
@ -25,7 +27,7 @@ public class UserProductMappingEntityTypeTransferConfiguration : IAcEntityTypeCo
builder.BuildUserProductMappingToRelations(false); builder.BuildUserProductMappingToRelations(false);
} }
} }
public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration<User, Profile, TiamServiceProvider, UserToServiceProvider> //IAcEntityTypeConfiguration<User>// public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration<User, Profile, TiamServiceProvider, UserToServiceProvider, Address> //IAcEntityTypeConfiguration<User>//
{ {
public override void Configure(EntityTypeBuilder<User> builder) public override void Configure(EntityTypeBuilder<User> builder)
{ {
@ -34,3 +36,15 @@ public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfigu
builder.BuildUserToUserProductMappingRelation(); builder.BuildUserToUserProductMappingRelation();
} }
} }
public class ProfileEntityTypeConfigurations : AcProfileEntityTypeDefaultConfiguration<Profile, Address>
{
public override void Configure(EntityTypeBuilder<Profile> builder)
{
base.Configure(builder);
//builder.BuildEntityToAddressRelation();
}
}

View File

@ -21,6 +21,7 @@
<Folder Include="DbSets\ServiceProvider\" /> <Folder Include="DbSets\ServiceProvider\" />
<Folder Include="Extensions\" /> <Folder Include="Extensions\" />
<Folder Include="ModelBuilders\Emails\" /> <Folder Include="ModelBuilders\Emails\" />
<Folder Include="ModelBuilders\Profiles\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,8 +1,9 @@
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using TIAM.Entities.Addresses;
namespace TIAM.Entities.Profiles; namespace TIAM.Entities.Profiles;
public interface IProfile : IAcProfile, IProfileDto public interface IProfile : IAcProfile<Address>, IProfileDto
{ {
} }

View File

@ -1,8 +1,9 @@
using AyCode.Entities.Profiles; using AyCode.Entities.Profiles;
using TIAM.Entities.Addresses;
namespace TIAM.Entities.Profiles; namespace TIAM.Entities.Profiles;
public class Profile : AcProfile, IProfile public class Profile : AcProfile<Address>, IProfile
{ {
} }

View File

@ -1,11 +1,12 @@
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users; namespace TIAM.Entities.Users;
public interface IUser : IAcUser<Profile, TiamServiceProvider, UserToServiceProvider>, IUserDto public interface IUser : IAcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUserDto
{ {
public List<Product> Products { get; } public List<Product> Products { get; }

View File

@ -1,11 +1,12 @@
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using AyCode.Interfaces.Users.Dtos; using AyCode.Interfaces.Users.Dtos;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users; namespace TIAM.Entities.Users;
public interface IUserDto : IAcUserDtoBase<Profile, TiamServiceProvider, UserToServiceProvider> public interface IUserDto : IAcUserDtoBase<Profile, TiamServiceProvider, UserToServiceProvider, Address>
{ } { }

View File

@ -5,13 +5,14 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using AyCode.Entities.Users; using AyCode.Entities.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users namespace TIAM.Entities.Users
{ {
public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider>, IUser public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUser
{ {
public virtual List<Product> Products { get; } = new(); public virtual List<Product> Products { get; } = new();

View File

@ -6,6 +6,7 @@ public class ProfileDto : IProfileDto
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public Guid? UserMediaId { get; set; } public Guid? UserMediaId { get; set; }
public Guid AddressId { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string? Description { get; set; } public string? Description { get; set; }

View File

@ -1,6 +1,7 @@
using AyCode.Entities.Profiles; using AyCode.Entities.Profiles;
using AyCode.Interfaces.Users.Dtos; using AyCode.Interfaces.Users.Dtos;
using AyCode.Models.Users; using AyCode.Models.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Profiles; using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders; using TIAM.Entities.ServiceProviders;
@ -9,7 +10,7 @@ using TIAM.Models.Dtos.Profiles;
namespace TIAM.Models.Dtos.Users; namespace TIAM.Models.Dtos.Users;
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider>, IProductsRelation public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider, Address>, IProductsRelation
{ {
public List<UserProductMapping> UserProductMappings { get; set; } public List<UserProductMapping> UserProductMappings { get; set; }
public List<Product> Products { get; set; } public List<Product> Products { get; set; }