basszódj meg!!!!!!!!

This commit is contained in:
jozsef.b@aycode.com 2024-05-29 13:31:44 +02:00
parent 6275a35937
commit 8b94dae965
18 changed files with 178 additions and 73 deletions

View File

@ -6,24 +6,39 @@ using AyCode.Entities.Addresses;
using AyCode.Entities.Profiles; using AyCode.Entities.Profiles;
using AyCode.Entities.Users; using AyCode.Entities.Users;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Messages; using AyCode.Interfaces.Messages;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using AyCode.Interfaces.Users.Dtos;
using AyCode.Models.Users;
namespace AyCode.Database.Tests.Users namespace AyCode.Database.Tests.Users
{ {
public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken, TCompany, TUserToServiceProvider, TProfileAddress, TEmailMessage> : AcDatabaseTestModelBase<TDal, TDbContext> public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken, TCompany, TUserToCompany, TAddress, TEmailMessage> : AcDatabaseTestModelBase<TDal, TDbContext>
where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TCompany, TUserToServiceProvider, TProfileAddress, TEmailMessage> where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TCompany, TUserToCompany, TAddress, TEmailMessage>
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TCompany, TUserToServiceProvider, TProfileAddress, TEmailMessage> where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TCompany, TUserToCompany, TAddress, TEmailMessage>
where TUser : class, IAcUser<TProfile, TCompany, TUserToServiceProvider, TProfileAddress> where TUser : class, IAcUser<TProfile, TCompany, TUserToCompany, TAddress>
where TProfile : class, IAcProfile<TProfileAddress> where TProfile : class, IAcProfile<TAddress>
where TProfileAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
where TUserToken : class, IAcUserTokenBase where TUserToken : class, IAcUserTokenBase
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TUserToServiceProvider : class, IAcUserToCompanyBase where TUserToCompany : class, IAcUserToCompanyBase
where TEmailMessage : class, IAcEmailMessageBase where TEmailMessage : class, IAcEmailMessageBase
{ {
public class UserModelDtoDetailTest : AcUserModelDtoDetailBase<TUser, TProfile, TCompany, TUserToCompany, TAddress>
{
public UserModelDtoDetailTest() : base()
{
}
public UserModelDtoDetailTest(IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddress> user) : base(user)
{
}
}
[DataTestMethod] [DataTestMethod]
public virtual void AcBase_GetUserById_ReturnsUser_WhenUserExists(string userIdString) => AcBase_GetUserById(userIdString); public virtual void AcBase_GetUserById_ReturnsUser_WhenUserExists(string userIdString) => AcBase_GetUserById(userIdString);
@ -59,6 +74,19 @@ namespace AyCode.Database.Tests.Users
return user; return user;
} }
[DataTestMethod]
public virtual void AcBase_GetUserModelDtoDetailById_ReturnsUser_WhenUserExists(string userIdString)
{
var userId = Guid.Parse(userIdString);
var userModelDtoDetail = Dal.GetUserModelDtoById<UserModelDtoDetailTest>(userId, false);
Assert.IsNotNull(userModelDtoDetail, "User is null");
Assert.IsNotNull(userModelDtoDetail.ProfileDto, "Profile is null");
Assert.IsNotNull(userModelDtoDetail.ProfileDto.Address, "Profile.Address is null");
Assert.AreEqual(userId, userModelDtoDetail.Id);
}
protected async Task<TUser> AcBase_GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email) protected async Task<TUser> AcBase_GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
{ {
TUser? user = null; TUser? user = null;
@ -104,7 +132,7 @@ namespace AyCode.Database.Tests.Users
profile.Id = profileId;; profile.Id = profileId;;
profile.Name = "Add user test name"; profile.Name = "Add user test name";
var address = Activator.CreateInstance<TProfileAddress>(); var address = Activator.CreateInstance<TAddress>();
address.Id = addressId; address.Id = addressId;
address.Latitude = 5362.2341652256; address.Latitude = 5362.2341652256;
address.Longitude = 5362.2341333317; address.Longitude = 5362.2341333317;

View File

@ -18,6 +18,8 @@ using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Messages; using AyCode.Interfaces.Messages;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles.Dtos;
namespace AyCode.Database.DataLayers.Users namespace AyCode.Database.DataLayers.Users
{ {
@ -28,7 +30,7 @@ namespace AyCode.Database.DataLayers.Users
where TUserToken : class, IAcUserTokenBase where TUserToken : class, IAcUserTokenBase
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TUserToCompany : class, IAcUserToCompanyBase where TUserToCompany : class, IAcUserToCompanyBase
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
where TEmailMessage : class, IAcEmailMessageBase where TEmailMessage : class, IAcEmailMessageBase
{ {
public TUser? GetUserById(Guid userId, bool onlyConfirmed) => Session(x => x.GetUserById(userId, onlyConfirmed)); public TUser? GetUserById(Guid userId, bool onlyConfirmed) => Session(x => x.GetUserById(userId, onlyConfirmed));

View File

@ -3,6 +3,7 @@ using AyCode.Database.DbSets.Messages;
using AyCode.Database.DbSets.Profiles; using AyCode.Database.DbSets.Profiles;
using AyCode.Database.DbSets.Users; using AyCode.Database.DbSets.Users;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Messages; using AyCode.Interfaces.Messages;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
@ -18,7 +19,7 @@ public interface IAcUserDbContextBase<TUser, TProfile, TUserToken, TCompany, TUs
where TUserToken : class, IAcUserTokenBase where TUserToken : class, IAcUserTokenBase
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TUserToServiceProvider : class, IAcUserToCompanyBase where TUserToServiceProvider : class, IAcUserToCompanyBase
where TProfileAddress : class, IAcAddress where TProfileAddress : class, IAcAddressDtoBase
where TEmailMessage : class, IAcEmailMessageBase where TEmailMessage : class, IAcEmailMessageBase
{ {
} }

View File

@ -1,10 +1,11 @@
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace AyCode.Database.DbSets.Addresses; namespace AyCode.Database.DbSets.Addresses;
public interface IAcAddressDbSetBase<TAddress> where TAddress : class, IAcAddress public interface IAcAddressDbSetBase<TAddress> where TAddress : class, IAcAddressDtoBase
{ {
DbSet<TAddress> Addresses { get; set; } DbSet<TAddress> Addresses { get; set; }
} }

View File

@ -5,6 +5,7 @@ using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using AyCode.Interfaces.Addresses.Dtos;
namespace AyCode.Database.DbSets.Profiles; namespace AyCode.Database.DbSets.Profiles;
@ -20,7 +21,7 @@ public static class AcProfileDbSetExtensions
public static bool RemoveProfile<TProfile, TAddress>(this IAcProfileDbSetBase<TProfile, TAddress> ctx, TProfile profile) public static bool RemoveProfile<TProfile, TAddress>(this IAcProfileDbSetBase<TProfile, TAddress> ctx, TProfile profile)
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ {
var address = ctx.Addresses.FirstOrDefault(x => x.Id == profile.AddressId); var address = ctx.Addresses.FirstOrDefault(x => x.Id == profile.AddressId);
if (address != null) ctx.Addresses.Remove(address); if (address != null) ctx.Addresses.Remove(address);
@ -30,7 +31,7 @@ public static class AcProfileDbSetExtensions
public static bool RemoveProfile<TProfile, TAddress>(this IAcProfileDbSetBase<TProfile, TAddress> ctx, Guid profileId) public static bool RemoveProfile<TProfile, TAddress>(this IAcProfileDbSetBase<TProfile, TAddress> ctx, Guid profileId)
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ {
var profile = ctx.GetProfileById(profileId); var profile = ctx.GetProfileById(profileId);

View File

@ -1,5 +1,6 @@
using AyCode.Database.DbSets.Addresses; using AyCode.Database.DbSets.Addresses;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
@ -14,6 +15,6 @@ public interface IAcProfileDbSetBase<TProfile> where TProfile : class, IAcProfil
public interface IAcProfileDbSetBase<TProfile, TAddress> : IAcProfileDbSetBase<TProfile>, IAcAddressDbSetBase<TAddress> public interface IAcProfileDbSetBase<TProfile, TAddress> : IAcProfileDbSetBase<TProfile>, IAcAddressDbSetBase<TAddress>
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ {
} }

View File

@ -6,6 +6,7 @@ using AyCode.Database.Extensions;
using AyCode.Entities; using AyCode.Entities;
using AyCode.Entities.Users; using AyCode.Entities.Users;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Entities; using AyCode.Interfaces.Entities;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
@ -71,7 +72,7 @@ public static class AcUserDbSetExtensions
public static bool RemoveUser<TUser, TProfile, TAddress>(this IAcUserDbSetBase<TUser, TProfile, TAddress> ctx, TUser user) public static bool RemoveUser<TUser, TProfile, TAddress>(this IAcUserDbSetBase<TUser, TProfile, TAddress> ctx, TUser user)
where TUser : class, IAcUser<TProfile, TAddress> where TUser : class, IAcUser<TProfile, TAddress>
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ {
ctx.RemoveProfile(user.ProfileId); ctx.RemoveProfile(user.ProfileId);
@ -81,7 +82,7 @@ public static class AcUserDbSetExtensions
public static bool RemoveUser<TUser, TProfile, TAddress>(this IAcUserDbSetBase<TUser, TProfile, TAddress> ctx, Guid userId) public static bool RemoveUser<TUser, TProfile, TAddress>(this IAcUserDbSetBase<TUser, TProfile, TAddress> ctx, Guid userId)
where TUser : class, IAcUser<TProfile, TAddress> where TUser : class, IAcUser<TProfile, TAddress>
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ {
var user = ctx.GetUserById(userId, false); var user = ctx.GetUserById(userId, false);

View File

@ -2,6 +2,7 @@
using AyCode.Database.DbSets.Companies; using AyCode.Database.DbSets.Companies;
using AyCode.Database.DbSets.Profiles; using AyCode.Database.DbSets.Profiles;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
@ -17,14 +18,14 @@ public interface IAcUserDbSetBase<TUser> where TUser : class, IAcUserBase
public interface IAcUserDbSetBase<TUser, TProfile, TAddress> : IAcUserDbSetBase<TUser>, IAcProfileDbSetBase<TProfile, TAddress> public interface IAcUserDbSetBase<TUser, TProfile, TAddress> : IAcUserDbSetBase<TUser>, IAcProfileDbSetBase<TProfile, TAddress>
where TUser : class, IAcUserBase where TUser : class, IAcUserBase
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ } { }
public interface IAcUserDbSetBase<TUser, TProfile, TCompany, TAddress> : IAcUserDbSetBase<TUser, TProfile, TAddress>, IAcCompanyDbSetBase<TCompany> public interface IAcUserDbSetBase<TUser, TProfile, TCompany, TAddress> : IAcUserDbSetBase<TUser, TProfile, TAddress>, IAcCompanyDbSetBase<TCompany>
where TUser : class, IAcUserBase where TUser : class, IAcUserBase
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ } { }
public interface IAcUserDbSetBase<TUser, TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDbSetBase<TUser, TProfile, TCompany, TAddress> public interface IAcUserDbSetBase<TUser, TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDbSetBase<TUser, TProfile, TCompany, TAddress>
@ -32,5 +33,5 @@ public interface IAcUserDbSetBase<TUser, TProfile, TCompany, TUserToCompany, TAd
where TProfile : class, IAcProfile<TAddress> where TProfile : class, IAcProfile<TAddress>
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TUserToCompany : class, IAcUserToCompanyBase where TUserToCompany : class, IAcUserToCompanyBase
where TAddress : class, IAcAddress where TAddress : class, IAcAddressDtoBase
{ } { }

View File

@ -1,10 +1,11 @@
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles;
using System.Formats.Tar; using System.Formats.Tar;
using System.Net; using System.Net;
namespace AyCode.Interfaces.Addresses; namespace AyCode.Interfaces.Addresses;
public interface IAcAddressRelation<TAddress> : IAcAddressForeignKey where TAddress : IAcAddress public interface IAcAddressRelation<TAddress> : IAcAddressForeignKey where TAddress : IAcAddressDtoBase
{ {
public TAddress Address { get; set; } public TAddress Address { get; set; }
} }

View File

@ -3,9 +3,14 @@ using AyCode.Interfaces.Entities;
using AyCode.Interfaces.MediaInfo; using AyCode.Interfaces.MediaInfo;
using AyCode.Interfaces.Users; using AyCode.Interfaces.Users;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using AyCode.Interfaces.Addresses.Dtos;
namespace AyCode.Interfaces.Profiles.Dtos; namespace AyCode.Interfaces.Profiles.Dtos;
public interface IAcProfileDtoBase<TAddress> : IAcProfileDtoBase, IAcAddressRelation<TAddress> where TAddress : IAcAddressDtoBase
{
}
public interface IAcProfileDtoBase : IEntityGuid, IAcProfileName, IMediaInfo, IAcAddressForeignKey//, IAcEmailAddress public interface IAcProfileDtoBase : IEntityGuid, IAcProfileName, IMediaInfo, IAcAddressForeignKey//, IAcEmailAddress
{ {
[MaxLength(150)] [MaxLength(150)]

View File

@ -1,10 +1,11 @@
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.TimeStampInfo; using AyCode.Interfaces.TimeStampInfo;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.Addresses.Dtos;
namespace AyCode.Interfaces.Profiles; namespace AyCode.Interfaces.Profiles;
public interface IAcProfile<TAddress> : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation<TAddress> where TAddress : IAcAddress public interface IAcProfile<TAddress> : IAcProfileDtoBase<TAddress>, ITimeStampInfo where TAddress : IAcAddressDtoBase
{ {
public string? GetFullName(string lang = "ENG"); public string? GetFullName(string lang = "ENG");
} }

View File

@ -1,17 +1,34 @@
using AyCode.Interfaces.Profiles; using System.Diagnostics.Contracts;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.Addresses.Dtos;
namespace AyCode.Interfaces.Users.Dtos; namespace AyCode.Interfaces.Users.Dtos;
public interface IAcUserDtoBase<TProfile, TAddress> : IAcUserDtoMinBase<TProfile> public interface IAcUserDtoBase : IAcUserDtoMinBase
where TProfile : IAcProfile<TAddress> {}
where TAddress : IAcAddress
public interface IAcUserDtoBase<TProfile> : IAcUserDtoMinBase<TProfile>, IAcUserDtoBase
where TProfile : IAcProfileDtoBase
{ } { }
public interface IAcUserDtoBase<TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDtoBase<TProfile, TAddress>, IAcCompanyRelation<TCompany, TUserToCompany> //public interface IAcUserDtoBase<TProfile, TAddress> : IAcUserDtoBase<TProfile>
where TProfile : IAcProfile<TAddress> // where TProfile : IAcProfileDtoBase<TAddress>
// where TAddress : IAcAddressDtoBase
//{ }
public interface IAcUserDtoBase<TProfile, TCompany, TUserToCompany> : IAcUserDtoBase<TProfile>, IAcCompanyRelation<TCompany, TUserToCompany>
where TProfile : IAcProfileDtoBase
where TCompany : IAcCompanyBase where TCompany : IAcCompanyBase
where TUserToCompany : IAcUserToCompanyBase where TUserToCompany : IAcUserToCompanyBase
where TAddress : IAcAddress
{ } { }
//public interface IAcUserDtoBase<TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDtoBase<TProfile, TCompany, TUserToCompany>, IAcUserDtoBase<TProfile, TAddress>
// where TProfile : IAcProfileDtoBase<TAddress>
// where TCompany : IAcCompanyBase
// where TUserToCompany : IAcUserToCompanyBase
// where TAddress : IAcAddressDtoBase
//{ }

View File

@ -1,17 +1,32 @@
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
namespace AyCode.Interfaces.Users.Dtos; namespace AyCode.Interfaces.Users.Dtos;
public interface IAcUserDtoDetailBase<TProfile, TAddress> : IAcUserBase, IAcUserDtoBase<TProfile, TAddress> public interface IAcUserDtoDetailBase : IAcUserBase, IAcUserDtoBase
where TProfile : IAcProfile<TAddress>
where TAddress : IAcAddress
{ } { }
public interface IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDtoDetailBase<TProfile, TAddress>, IAcUserDtoBase<TProfile, TCompany, TUserToCompany, TAddress> public interface IAcUserDtoDetailBase<TProfile> : IAcUserDtoDetailBase, IAcUserDtoBase<TProfile>
where TProfile : IAcProfile<TAddress> where TProfile : IAcProfileDtoBase
{ }
public interface IAcUserDtoDetailBase<TProfile, TAddress> : IAcUserDtoDetailBase<TProfile>//, IAcUserDtoBase<TProfile, TAddress>
where TProfile : IAcProfileDtoBase<TAddress>
where TAddress : IAcAddressDtoBase
{ }
public interface IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany> : IAcUserDtoDetailBase<TProfile>, IAcUserDtoBase<TProfile, TCompany, TUserToCompany>
where TProfile : IAcProfileDtoBase
where TCompany : IAcCompanyBase where TCompany : IAcCompanyBase
where TUserToCompany : IAcUserToCompanyBase where TUserToCompany : IAcUserToCompanyBase
where TAddress : IAcAddress { }
public interface IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddress> : IAcUserDtoDetailBase<TProfile, TAddress>, IAcUserDtoBase<TProfile, TCompany, TUserToCompany>
where TProfile : IAcProfileDtoBase<TAddress>
where TCompany : IAcCompanyBase
where TUserToCompany : IAcUserToCompanyBase
where TAddress : IAcAddressDtoBase
{ } { }

View File

@ -5,7 +5,12 @@ using AyCode.Interfaces.Profiles.Dtos;
namespace AyCode.Interfaces.Users.Dtos; namespace AyCode.Interfaces.Users.Dtos;
public interface IAcUserDtoMinBase<TProfile> : IEntityGuid, IAcProfileRelation<TProfile> where TProfile : IAcProfileDtoBase public interface IAcUserDtoMinBase : IEntityGuid
{ {
public Guid AffiliateId { get; set; } public Guid AffiliateId { get; set; }
} }
public interface IAcUserDtoMinBase<TProfile> : IAcUserDtoMinBase, IAcProfileRelation<TProfile> where TProfile : IAcProfileDtoBase
{
}

View File

@ -1,5 +1,6 @@
 
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users.Dtos; using AyCode.Interfaces.Users.Dtos;
@ -8,12 +9,12 @@ namespace AyCode.Interfaces.Users;
public interface IAcUser<TProfile, TAddress> : IAcUserDtoDetailBase<TProfile, TAddress> public interface IAcUser<TProfile, TAddress> : IAcUserDtoDetailBase<TProfile, TAddress>
where TProfile : IAcProfile<TAddress> where TProfile : IAcProfile<TAddress>
where TAddress : IAcAddress where TAddress : IAcAddressDtoBase
{ } { }
public interface IAcUser<TProfile, TCompany, TUserToCompany, TAddress> : IAcUser<TProfile, TAddress>, IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddress> public interface IAcUser<TProfile, TCompany, TUserToCompany, TAddress> : IAcUser<TProfile, TAddress>, IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddress>
where TProfile : IAcProfile<TAddress> where TProfile : IAcProfile<TAddress>
where TCompany : IAcCompanyBase where TCompany : IAcCompanyBase
where TUserToCompany : IAcUserToCompanyBase where TUserToCompany : IAcUserToCompanyBase
where TAddress : IAcAddress where TAddress : IAcAddressDtoBase
{ } { }

View File

@ -1,4 +1,5 @@
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
@ -7,23 +8,23 @@ using AyCode.Interfaces.Users.Dtos;
namespace AyCode.Models.Users; namespace AyCode.Models.Users;
public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TCompany, TUserToServiceProvider, TAddress> : AcUserModelDtoMinBase<TUserDto, TProfile, TProfileDto, TAddress>, IAcCompanyRelation<TCompany, TUserToServiceProvider> public abstract class AcUserModelDtoBase<TUserDto, TProfileDto, TCompany, TUserToCompany> : AcUserModelDtoMinBase<TUserDto, TProfileDto>, IAcCompanyRelation<TCompany, TUserToCompany>
where TUserDto : class, IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider, TAddress> where TUserDto : class, IAcUserDtoBase
where TProfile : class, IAcProfile<TAddress>
where TProfileDto : class, IAcProfileDtoBase where TProfileDto : class, IAcProfileDtoBase
where TCompany : class, IAcCompanyBase where TCompany : class, IAcCompanyBase
where TUserToServiceProvider : class, IAcUserToCompanyBase where TUserToCompany : class, IAcUserToCompanyBase
where TAddress : class, IAcAddress //where TAddressDto : class, IAcAddressDtoBase
{ {
public List<TCompany> ServiceProviders { get; set; } public List<TCompany> ServiceProviders { get; set; }
public List<TUserToServiceProvider> UserToServiceProviders { get; set; } public List<TUserToCompany> UserToServiceProviders { get; set; }
protected AcUserModelDtoBase() {} protected AcUserModelDtoBase() {}
protected AcUserModelDtoBase(IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider, TAddress> user) : base(user) protected AcUserModelDtoBase(IAcUserDtoBase<TProfileDto, TCompany, TUserToCompany> user) : base(user)
{ {
Profile.AddressId = user.Profile.AddressId; ProfileDto.AddressId = user.Profile.AddressId;
UserDto.AffiliateId = user.AffiliateId; UserDto.AffiliateId = user.AffiliateId;
if (user.ServiceProviders.Count == 0) return; if (user.ServiceProviders.Count == 0) return;
//így proxy error lesz... - J. //így proxy error lesz... - J.
@ -31,7 +32,7 @@ public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TCompa
//UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders); //UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders);
ServiceProviders = new List<TCompany>(user.ServiceProviders.Count); ServiceProviders = new List<TCompany>(user.ServiceProviders.Count);
UserToServiceProviders = new List<TUserToServiceProvider>(user.UserToServiceProviders.Count); UserToServiceProviders = new List<TUserToCompany>(user.UserToServiceProviders.Count);
foreach (var serviceProvider in user.ServiceProviders) foreach (var serviceProvider in user.ServiceProviders)
{ {
@ -46,7 +47,7 @@ public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TCompa
foreach (var userToServiceProvider in user.UserToServiceProviders) foreach (var userToServiceProvider in user.UserToServiceProviders)
{ {
var newUserToProvider = Activator.CreateInstance<TUserToServiceProvider>(); var newUserToProvider = Activator.CreateInstance<TUserToCompany>();
newUserToProvider.Id = userToServiceProvider.Id; newUserToProvider.Id = userToServiceProvider.Id;
newUserToProvider.UserId = userToServiceProvider.UserId; newUserToProvider.UserId = userToServiceProvider.UserId;

View File

@ -1,4 +1,5 @@
using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Addresses.Dtos;
using AyCode.Interfaces.Profiles; using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.Profiles.Dtos;
using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.ServiceProviders;
@ -7,20 +8,42 @@ using AyCode.Interfaces.Users.Dtos;
namespace AyCode.Models.Users; namespace AyCode.Models.Users;
public abstract class AcUserModelDtoDetailBase<TUserDtoDetail, TProfile, TProfileDto, TCompany, TUserToServiceProvider, TAddress> : AcUserModelDtoBase<TUserDtoDetail, TProfile, TProfileDto, TCompany, TUserToServiceProvider, TAddress> //public abstract class AcUserModelDtoDetailBase<TUserDtoDetail, TProfile, TCompany, TUserToCompany, TAddressDto> : AcUserModelDtoDetailBase<TUserDtoDetail, TProfile, TProfile, TCompany, TUserToCompany, TAddressDto>
where TUserDtoDetail : class, IAcUserDtoDetailBase<TProfile, TCompany, TUserToServiceProvider, TAddress> // where TUserDtoDetail : class, IAcUserDtoDetailBase
where TProfile : class, IAcProfile<TAddress> // where TProfile: class, IAcProfile<TAddressDto>
where TProfileDto : class, IAcProfileDtoBase // where TCompany : class, IAcCompanyBase
where TCompany : class, IAcCompanyBase // where TUserToCompany : class, IAcUserToCompanyBase
where TUserToServiceProvider : class, IAcUserToCompanyBase // where TAddressDto : class, IAcAddressDtoBase
where TAddress : class, IAcAddress //{
{ // protected AcUserModelDtoDetailBase() : base()
protected AcUserModelDtoDetailBase() {} // {}
protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase<TProfile, TCompany, TUserToServiceProvider, TAddress> user) : base(user)
{
Profile.Address = Activator.CreateInstance<TAddress>();
Profile.Address.Id = user.Profile.AddressId;
// protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase<TProfile, TCompany, TUserToCompany, TAddressDto> user) : base(user)
// {
// }
//}
public abstract class AcUserModelDtoDetailBase<TUserDtoDetail, TProfileDto, TCompany, TUserToCompany, TAddressDto> : AcUserModelDtoBase<TUserDtoDetail, TProfileDto, TCompany, TUserToCompany>
where TUserDtoDetail : class, IAcUserDtoDetailBase
where TProfileDto : class, IAcProfileDtoBase<TAddressDto>
where TCompany : class, IAcCompanyBase
where TUserToCompany : class, IAcUserToCompanyBase
where TAddressDto : class, IAcAddressDtoBase
{
public TAddressDto AddressDto { get; set; }
protected AcUserModelDtoDetailBase() : base() {}
protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase<TProfileDto, TCompany, TUserToCompany, TAddressDto> user) : base(user)
{
var address = Activator.CreateInstance<TAddressDto>();
address.Id = user.Profile.AddressId;
address.AddressText = user.Profile.Address.AddressText;
address.Latitude = user.Profile.Address.Latitude;
address.Longitude = user.Profile.Address.Longitude;
ProfileDto.Address = address;
UserDto.EmailAddress = user.EmailAddress; UserDto.EmailAddress = user.EmailAddress;
UserDto.PhoneNumber = user.PhoneNumber; UserDto.PhoneNumber = user.PhoneNumber;

View File

@ -6,17 +6,17 @@ using AyCode.Interfaces.Users.Dtos;
namespace AyCode.Models.Users; namespace AyCode.Models.Users;
public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto, TAddress> : AcModelDtoBase, IAcUserModelDtoMinBase public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfileDto> : AcModelDtoBase, IAcUserModelDtoMinBase
where TUserDtoMin : class, IAcUserDtoMinBase<TProfile> where TUserDtoMin : class, IAcUserDtoMinBase
where TProfile : class, IAcProfile<TAddress> //where TProfile : class, IAcProfileDtoBase
where TProfileDto : class, IAcProfileDtoBase where TProfileDto : class, IAcProfileDtoBase
where TAddress : class, IAcAddress //where TAddress : class, IAcAddress
{ {
public TUserDtoMin UserDto { get; set;} public TUserDtoMin UserDto { get; set;}
public TProfile Profile { get; set; } public TProfileDto ProfileDto { get; set; }
protected AcUserModelDtoMinBase() {} protected AcUserModelDtoMinBase() {}
protected AcUserModelDtoMinBase(IAcUserDtoMinBase<TProfile> user) : base(user.Id) protected AcUserModelDtoMinBase(IAcUserDtoMinBase<TProfileDto> user) : base(user.Id)
{ {
Id = user.Id; Id = user.Id;
@ -24,11 +24,11 @@ public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto,
UserDto.Id = user.Id; UserDto.Id = user.Id;
UserDto.AffiliateId = user.AffiliateId; UserDto.AffiliateId = user.AffiliateId;
Profile = Activator.CreateInstance<TProfile>(); ProfileDto = Activator.CreateInstance<TProfileDto>();
Profile.Id = user.Profile.Id; ProfileDto.Id = user.Profile.Id;
Profile.Name = user.Profile.Name; ProfileDto.Name = user.Profile.Name;
Profile.FirstName = user.Profile.FirstName; ProfileDto.FirstName = user.Profile.FirstName;
Profile.LastName = user.Profile.LastName; ProfileDto.LastName = user.Profile.LastName;
//Profile.NickName = user.Profile.NickName; //Profile.NickName = user.Profile.NickName;
} }
} }