Impelement ServicProvider and Mapping to AcUserModel; refactoring, improvements, fixes, etc...

This commit is contained in:
jozsef.b@aycode.com 2023-12-22 06:13:43 +01:00
parent 7e59e42dee
commit 00a9528732
14 changed files with 59 additions and 24 deletions

View File

@ -19,7 +19,7 @@ using TIAM.Entities.ServiceProviders;
namespace TIAM.Database.Test namespace TIAM.Database.Test
{ {
[TestClass] [TestClass]
public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider> public class UserDalTests : AcUserDalTestBase<UserDal, UserDbContext, User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>
{ {
private Mock<UserDbContext> _mockContext; private Mock<UserDbContext> _mockContext;
@ -40,18 +40,33 @@ namespace TIAM.Database.Test
[TestMethod] [TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
public override void GetUserById_ReturnsUser_WhenUserExists(string userIdString) public void GetUserById_ReturnsUser_WhenUserAndRelationsExists(string userIdString)
=> base.GetUserById_ReturnsUser_WhenUserExists(userIdString); {
var user = AcBase_GetUserById_ReturnsUser_WhenUserExists(userIdString);
Assert.IsTrue(user.ServiceProviders.Count > 0);
Assert.IsTrue(user.UserToServiceProviders.Count > 0);
}
[TestMethod]
[DataRow("test@tiam.hu")]
public void GetUserByEmail_ReturnsUser_WhenUserAndRelationsExists(string email)
{
var user = AcBase_GetUserByEmail_ReturnsUser_WhenUserExists(email);
Assert.IsTrue(user.ServiceProviders.Count > 0);
Assert.IsTrue(user.UserToServiceProviders.Count > 0);
}
[TestMethod] [TestMethod]
[DataRow("test@tiam.hu")] [DataRow("test@tiam.hu")]
public override void GetUserByEmail_ReturnsUser_WhenUserExists(string email) public async Task GetUserByEmailAsync_ReturnsUser_WhenUserAndRelationsExists(string email)
=> base.GetUserByEmail_ReturnsUser_WhenUserExists(email); {
var user = await AcBase_GetUserByEmailAsync_ReturnsUser_WhenUserExists(email);
[TestMethod]
[DataRow("test@tiam.hu")] Assert.IsTrue(user.ServiceProviders.Count > 0);
public override Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email) Assert.IsTrue(user.UserToServiceProviders.Count > 0);
=> base.GetUserByEmailAsync_ReturnsUser_WhenUserExists(email); }
[TestMethod] [TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
@ -80,6 +95,9 @@ namespace TIAM.Database.Test
Assert.IsTrue(userModel.Products.Count > 0); Assert.IsTrue(userModel.Products.Count > 0);
Assert.IsTrue(userModel.UserProductMappings.Count > 0); Assert.IsTrue(userModel.UserProductMappings.Count > 0);
Assert.IsTrue(userModel.ServiceProviders.Count > 0);
Assert.IsTrue(userModel.UserToServiceProviders.Count > 0);
} }
//[TestMethod] //[TestMethod]

View File

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

View File

@ -7,6 +7,6 @@ using TIAM.Entities.Users;
namespace TIAM.Database.DbContexts.Users; namespace TIAM.Database.DbContexts.Users;
public interface IUserDbContext : IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider>, IUserDbSet public interface IUserDbContext : IAcUserDbContextBase<User, Profile, UserToken, TiamServiceProvider, UserToServiceProvider>, IUserDbSet
{ {
} }

View File

@ -5,6 +5,6 @@ using TIAM.Entities.Users;
namespace TIAM.Database.DbSets.Users; namespace TIAM.Database.DbSets.Users;
public interface IUserDbSet : IAcUserDbSet<User, Profile, TiamServiceProvider> public interface IUserDbSet : IAcUserDbSet<User, Profile, TiamServiceProvider, UserToServiceProvider>
{ {
} }

View File

@ -16,7 +16,7 @@ public class UserProductMappingEntityTypeDefaultConfiguration : IAcEntityTypeCon
} }
} }
public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration<User, Profile, TiamServiceProvider> //IAcEntityTypeConfiguration<User>// public class UserEntityTypeDefaultConfiguration : AcUserEntityTypeDefaultConfiguration<User, Profile, TiamServiceProvider, UserToServiceProvider> //IAcEntityTypeConfiguration<User>//
{ {
public override void Configure(EntityTypeBuilder<User> builder) public override void Configure(EntityTypeBuilder<User> builder)
{ {

View File

@ -4,11 +4,12 @@ using AyCode.Entities.ServiceProviders;
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.TimeStampInfo;
using TIAM.Entities.Products; using TIAM.Entities.Products;
using TIAM.Entities.Users;
namespace TIAM.Entities.ServiceProviders; namespace TIAM.Entities.ServiceProviders;
[Table("ServiceProviders")] [Table("ServiceProviders")]
public class TiamServiceProvider : AcServiceProvider public class TiamServiceProvider : AcServiceProvider<User, UserToServiceProvider>
{ {
public virtual List<Product> Products { get; } = new(); public virtual List<Product> Products { get; } = new();

View File

@ -5,7 +5,7 @@ using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users; namespace TIAM.Entities.Users;
public interface IUser : IAcUser<Profile, TiamServiceProvider>, IUserDto public interface IUser : IAcUser<Profile, TiamServiceProvider, UserToServiceProvider>, IUserDto
{ {
public List<Product> Products { get; } public List<Product> Products { get; }

View File

@ -6,5 +6,5 @@ using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users; namespace TIAM.Entities.Users;
public interface IUserDto : IAcUserDtoBase<Profile, TiamServiceProvider> public interface IUserDto : IAcUserDtoBase<Profile, TiamServiceProvider, UserToServiceProvider>
{ } { }

View File

@ -11,7 +11,7 @@ using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users namespace TIAM.Entities.Users
{ {
public class User : AcUser<Profile, TiamServiceProvider>, IUser public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider>, IUser
{ {
public virtual List<Product> Products { get; } = new(); public virtual List<Product> Products { get; } = new();

View File

@ -15,9 +15,7 @@ public class UserProductMapping : IEntityGuid, ITimeStampInfo
public Guid UserId { get; set; } public Guid UserId { get; set; }
public Guid ProductId { get; set; } public Guid ProductId { get; set; }
[JsonIgnore]
public virtual User User { get; set; } public virtual User User { get; set; }
[JsonIgnore]
public virtual Product Product { get; set; } public virtual Product Product { get; set; }
public DateTime Created { get; set; } public DateTime Created { get; set; }

View File

@ -0,0 +1,9 @@
using AyCode.Entities.Users;
using TIAM.Entities.ServiceProviders;
namespace TIAM.Entities.Users;
public class UserToServiceProvider : AcUserToServiceProvider<User, TiamServiceProvider>
{
}

View File

@ -11,4 +11,5 @@ public class UserDto : IUserDto
public Guid ProfileId { get; } public Guid ProfileId { get; }
public Profile Profile { get; set; } public Profile Profile { get; set; }
public List<TiamServiceProvider> ServiceProviders { get; set; } public List<TiamServiceProvider> ServiceProviders { get; set; }
public List<UserToServiceProvider> UserToServiceProviders { get; set; }
} }

View File

@ -9,14 +9,23 @@ using TIAM.Models.Dtos.Profiles;
namespace TIAM.Models.Dtos.Users; namespace TIAM.Models.Dtos.Users;
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider> public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider>
{ {
public List<UserProductMapping> UserProductMappings = new(); public List<UserProductMapping> UserProductMappings;
public List<Product> Products = new(); public List<Product> Products;
public UserModelDto(){} public UserModelDto(){}
public UserModelDto(User user) : base(user) public UserModelDto(User user) : base(user)
{ {
if (user.Products.Count == 0) return;
//így proxy error lesz... - J.
//Products = new List<Product>(user.Products);
//UserProductMappings = new List<UserProductMapping>(user.UserProductMappings);
Products = new List<Product>(user.Products.Count);
UserProductMappings = new List<UserProductMapping>(user.UserProductMappings.Count);
foreach (var product in user.Products) foreach (var product in user.Products)
{ {
Products.Add(new Product(product.Id, product.ServiceProviderId, product.ProductType, product.Name, product.Description, product.Price, product.JsonDetails)); Products.Add(new Product(product.Id, product.ServiceProviderId, product.ProductType, product.Name, product.Description, product.Price, product.JsonDetails));

View File

@ -18,7 +18,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
<PackageReference Include="Microsoft.JSInterop" Version="8.0.0" /> <PackageReference Include="Microsoft.JSInterop" Version="8.0.0" />
</ItemGroup> </ItemGroup>