diff --git a/TIAM.Entities/Users/User.cs b/TIAM.Entities/Users/User.cs index f8697eb1..e87f542a 100644 --- a/TIAM.Entities/Users/User.cs +++ b/TIAM.Entities/Users/User.cs @@ -10,10 +10,10 @@ namespace TIAM.Entities.Users [Table("Users")] public class User : AcUser, IUser, IUserDtoDetail { - public virtual List Products { get; } = new(); + public virtual List Products { get; set; } = new(); //public virtual ServiceProvider ServiceProvider { get; set; } = new(); - public virtual List UserProductMappings { get; } = new(); + public virtual List UserProductMappings { get; set; } = new(); public User() { } public User(string email, string password) : this(Guid.NewGuid(), email, password) { } diff --git a/TIAM.Models/Dtos/Users/UserDto.cs b/TIAM.Models/Dtos/Users/UserDto.cs index 3a967807..455865a0 100644 --- a/TIAM.Models/Dtos/Users/UserDto.cs +++ b/TIAM.Models/Dtos/Users/UserDto.cs @@ -1,10 +1,11 @@ -using TIAM.Entities.Profiles; +using AyCode.Interfaces; +using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Users; namespace TIAM.Models.Dtos.Users; -public class UserDto : IUserDto +public class UserDto : IUserDto, IAcModelDtoBase { public Guid Id { get; set; } @@ -15,4 +16,28 @@ public class UserDto : IUserDto public List ServiceProviders { get; set; } public List UserToServiceProviders { get; set; } + + public UserDto() {} + + public UserDto(User user) : this() + { + //TODO: Models... - J. + throw new NotImplementedException("UserDto(User user)"); + + Id = user.Id; + ProfileId = user.ProfileId; + AffiliateId = AffiliateId; + } + + public virtual User CreateMainEntity() + { + return new User + { + Id = Id, + ProfileId = ProfileId, + AffiliateId = AffiliateId, + ServiceProviders = ServiceProviders.ToList(), + UserToServiceProviders = UserToServiceProviders.ToList() + }; + } } \ No newline at end of file diff --git a/TIAM.Models/Dtos/Users/UserDtoDetail.cs b/TIAM.Models/Dtos/Users/UserDtoDetail.cs index 7139c130..528c1e7e 100644 --- a/TIAM.Models/Dtos/Users/UserDtoDetail.cs +++ b/TIAM.Models/Dtos/Users/UserDtoDetail.cs @@ -1,10 +1,11 @@ -using TIAM.Entities.Users; +using AyCode.Interfaces; +using TIAM.Entities.Users; namespace TIAM.Models.Dtos.Users { public class UserDtoDetail : UserDto, IUserDtoDetail { - public string PhoneNumber { get; set; } + public string? PhoneNumber { get; set; } public string? RefreshToken { get; set; } public Guid? RefferalId { get; set; } public string EmailAddress { get; set; } @@ -12,5 +13,31 @@ namespace TIAM.Models.Dtos.Users public string Password { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } + + public UserDtoDetail() : base() + { } + public UserDtoDetail(User user) : base(user) + { + PhoneNumber = user.PhoneNumber; + RefreshToken = user.RefreshToken; + EmailConfirmed = user.EmailConfirmed; + Password = user.Password; + EmailAddress = user.EmailAddress; + EmailConfirmed = user.EmailConfirmed; + } + + public override User CreateMainEntity() + { + var user = base.CreateMainEntity(); + + user.PhoneNumber = PhoneNumber; + user.RefreshToken = RefreshToken; + user.EmailConfirmed = EmailConfirmed; + user.Password = Password; + user.EmailAddress = EmailAddress; + user.EmailConfirmed = EmailConfirmed; + + return user; + } } } diff --git a/TIAM.Models/Dtos/Users/UserModelDto.cs b/TIAM.Models/Dtos/Users/UserModelDto.cs index f83095a3..c7bc73f1 100644 --- a/TIAM.Models/Dtos/Users/UserModelDto.cs +++ b/TIAM.Models/Dtos/Users/UserModelDto.cs @@ -1,4 +1,5 @@ -using AyCode.Models.Users; +using AyCode.Interfaces; +using AyCode.Models.Users; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; @@ -6,7 +7,7 @@ using TIAM.Entities.Users; namespace TIAM.Models.Dtos.Users; -public class UserModelDto : AcUserModelDtoBase, IProductsRelation, IUserModelDtoMinBase +public class UserModelDto : AcUserModelDtoBase, IProductsRelation, IUserModelDtoMinBase, IAcModelDtoBase { public List UserProductMappings { get; set; } public List Products { get; set; } @@ -33,4 +34,19 @@ public class UserModelDto : AcUserModelDtoBase where TAttribute : TagAttribute public object InstanceObject { get; init; } public ConcurrentDictionary> MethodsByMessageTag { get; init; } = new(); + public DynamicMethodCallModel(Type instanceObjectType) : this(Activator.CreateInstance(instanceObjectType)!) + { } + public DynamicMethodCallModel(object instanceObject) { InstanceObject = instanceObject; @@ -76,19 +79,20 @@ public class DevAdminSignalRHub : Hub, IAcSignalRHubServe private readonly TIAM.Core.Loggers.Logger _logger; private readonly AdminDal _adminDal; - private readonly ServiceProviderAPIController _serviceProviderApiController; - private readonly TransferDataAPIController _transferDataApiController; + //private readonly ServiceProviderAPIController _serviceProviderApiController; + //private readonly TransferDataAPIController _transferDataApiController; public DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController serviceProviderApiController, TransferDataAPIController transferDataApiController, IEnumerable logWriters) { _adminDal = adminDal; - _serviceProviderApiController = serviceProviderApiController; - _transferDataApiController = transferDataApiController; + //_serviceProviderApiController = serviceProviderApiController; + //_transferDataApiController = transferDataApiController; _logger = new(logWriters.ToArray()); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(serviceProviderApiController)); _dynamicMethodCallModels.Add(new DynamicMethodCallModel(transferDataApiController)); + _dynamicMethodCallModels.Add(new DynamicMethodCallModel(typeof(MessageAPIController))); }