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
{
[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;
@ -40,18 +40,33 @@ namespace TIAM.Database.Test
[TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
public override void GetUserById_ReturnsUser_WhenUserExists(string userIdString)
=> base.GetUserById_ReturnsUser_WhenUserExists(userIdString);
public void GetUserById_ReturnsUser_WhenUserAndRelationsExists(string 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]
[DataRow("test@tiam.hu")]
public override void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
=> base.GetUserByEmail_ReturnsUser_WhenUserExists(email);
[TestMethod]
[DataRow("test@tiam.hu")]
public override Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
=> base.GetUserByEmailAsync_ReturnsUser_WhenUserExists(email);
public async Task GetUserByEmailAsync_ReturnsUser_WhenUserAndRelationsExists(string email)
{
var user = await AcBase_GetUserByEmailAsync_ReturnsUser_WhenUserExists(email);
Assert.IsTrue(user.ServiceProviders.Count > 0);
Assert.IsTrue(user.UserToServiceProviders.Count > 0);
}
[TestMethod]
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
@ -80,6 +95,9 @@ namespace TIAM.Database.Test
Assert.IsTrue(userModel.Products.Count > 0);
Assert.IsTrue(userModel.UserProductMappings.Count > 0);
Assert.IsTrue(userModel.ServiceProviders.Count > 0);
Assert.IsTrue(userModel.UserToServiceProviders.Count > 0);
}
//[TestMethod]

View File

@ -17,7 +17,7 @@ using TIAM.Models.Dtos.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()

View File

@ -7,6 +7,6 @@ using TIAM.Entities.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;
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)
{

View File

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

View File

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

View File

@ -6,5 +6,5 @@ using TIAM.Entities.ServiceProviders;
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
{
public class User : AcUser<Profile, TiamServiceProvider>, IUser
public class User : AcUser<Profile, TiamServiceProvider, UserToServiceProvider>, IUser
{
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 ProductId { get; set; }
[JsonIgnore]
public virtual User User { get; set; }
[JsonIgnore]
public virtual Product Product { 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 Profile Profile { 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;
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider>
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, TiamServiceProvider, UserToServiceProvider>
{
public List<UserProductMapping> UserProductMappings = new();
public List<Product> Products = new();
public List<UserProductMapping> UserProductMappings;
public List<Product> Products;
public UserModelDto(){}
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)
{
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>
<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" />
</ItemGroup>