AyCode.Core/AyCode.Models/Users/AcUserModelDtoBase.cs

59 lines
2.5 KiB
C#

using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users;
using AyCode.Interfaces.Users.Dtos;
namespace AyCode.Models.Users;
public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TCompany, TUserToServiceProvider, TProfileAddress> : AcUserModelDtoMinBase<TUserDto, TProfile, TProfileDto, TProfileAddress>, IAcCompanyRelation<TCompany, TUserToServiceProvider>
where TUserDto : class, IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider, TProfileAddress>
where TProfile : class, IAcProfile<TProfileAddress>
where TProfileDto : class, IAcProfileDtoBase
where TCompany : class, IAcCompanyBase
where TUserToServiceProvider : class, IAcUserToCompanyBase
where TProfileAddress : class, IAcAddress
{
public List<TCompany> ServiceProviders { get; set; }
public List<TUserToServiceProvider> UserToServiceProviders { get; set; }
protected AcUserModelDtoBase() {}
protected AcUserModelDtoBase(IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider, TProfileAddress> user) : base(user)
{
Profile.AddressId = user.Profile.AddressId;
UserDto.AffiliateId = user.AffiliateId;
if (user.ServiceProviders.Count == 0) return;
//így proxy error lesz... - J.
//ServiceProviders = new List<TCompany>(user.ServiceProviders);
//UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders);
ServiceProviders = new List<TCompany>(user.ServiceProviders.Count);
UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders.Count);
foreach (var serviceProvider in user.ServiceProviders)
{
var newProvider = Activator.CreateInstance<TCompany>();
newProvider.Id = serviceProvider.Id;
newProvider.Name = serviceProvider.Name;
newProvider.OwnerId = serviceProvider.OwnerId;
ServiceProviders.Add(newProvider);
}
foreach (var userToServiceProvider in user.UserToServiceProviders)
{
var newUserToProvider = Activator.CreateInstance<TUserToServiceProvider>();
newUserToProvider.Id = userToServiceProvider.Id;
newUserToProvider.UserId = userToServiceProvider.UserId;
newUserToProvider.ServiceProviderId = userToServiceProvider.ServiceProviderId;
UserToServiceProviders.Add(newUserToProvider);
}
}
}