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);
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");

View File

@ -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<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>
public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>
{
private Mock<UserDbContext> _mockContext;

View File

@ -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<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>
public class UserDal : AcUserDalBase<UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider, Address>
{
public UserDal() : base()

View File

@ -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<User>());
new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity<Profile>());
new UserProductMappingEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<UserProductMapping>());
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());

View File

@ -12,5 +12,5 @@ using TIAM.Entities.Users;
namespace TIAM.Database.DbContexts.Users;
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 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<User>());
new ProfileEntityTypeConfigurations().Configure(modelBuilder.Entity<Profile>());
new ProductEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Product>());
new TransferEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity<Transfer>());

View File

@ -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<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 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<User, Profile, TiamServiceProvider, UserToServiceProvider> //IAcEntityTypeConfiguration<User>//
public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration<User, Profile, TiamServiceProvider, UserToServiceProvider, Address> //IAcEntityTypeConfiguration<User>//
{
public override void Configure(EntityTypeBuilder<User> builder)
{
@ -34,3 +36,15 @@ public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfigu
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="Extensions\" />
<Folder Include="ModelBuilders\Emails\" />
<Folder Include="ModelBuilders\Profiles\" />
</ItemGroup>
<ItemGroup>

View File

@ -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<Address>, IProfileDto
{
}

View File

@ -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<Address>, IProfile
{
}

View File

@ -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<Profile, TiamServiceProvider, UserToServiceProvider>, IUserDto
public interface IUser : IAcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUserDto
{
public List<Product> Products { get; }

View File

@ -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<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.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<Profile, TiamServiceProvider, UserToServiceProvider>, IUser
public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider, Address>, IUser
{
public virtual List<Product> Products { get; } = new();

View File

@ -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; }

View File

@ -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<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<Product> Products { get; set; }