Implement AcAddress; improvements, refactoring, fixes, etc...
This commit is contained in:
parent
6b1f86ed43
commit
375ec42ea2
|
|
@ -1,17 +1,19 @@
|
||||||
using AyCode.Database.DataLayers.Users;
|
using AyCode.Database.DataLayers.Users;
|
||||||
using AyCode.Database.DbContexts;
|
using AyCode.Database.DbContexts;
|
||||||
using AyCode.Database.DbContexts.Users;
|
using AyCode.Database.DbContexts.Users;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
||||||
namespace AyCode.Database.Tests.Users
|
namespace AyCode.Database.Tests.Users
|
||||||
{
|
{
|
||||||
public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider> : AcDatabaseTestModelBase<TDal, TDbContext>
|
public abstract class AcUserDalTestBase<TDal, TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress> : AcDatabaseTestModelBase<TDal, TDbContext>
|
||||||
where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider>
|
where TDal : AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken,TServiceProvider, TUserToServiceProvider>
|
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken,TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
where TUserToken : class, IAcUserTokenBase
|
where TUserToken : class, IAcUserTokenBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
|
@ -23,6 +25,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
|
|
||||||
Assert.IsNotNull(user, "User is null");
|
Assert.IsNotNull(user, "User is null");
|
||||||
Assert.IsNotNull(user.Profile, "Profile is null");
|
Assert.IsNotNull(user.Profile, "Profile is null");
|
||||||
|
Assert.IsNotNull(user.Profile.Address, "Profile.Address is null");
|
||||||
|
|
||||||
Assert.AreEqual(userId, user.Id);
|
Assert.AreEqual(userId, user.Id);
|
||||||
|
|
||||||
|
|
@ -35,6 +38,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
|
|
||||||
Assert.IsNotNull(user, "User is null");
|
Assert.IsNotNull(user, "User is null");
|
||||||
Assert.IsNotNull(user.Profile, "Profile is null");
|
Assert.IsNotNull(user.Profile, "Profile is null");
|
||||||
|
Assert.IsNotNull(user.Profile.Address, "Profile.Address is null");
|
||||||
|
|
||||||
Assert.AreEqual(email, user.EmailAddress);
|
Assert.AreEqual(email, user.EmailAddress);
|
||||||
|
|
||||||
|
|
@ -56,6 +60,7 @@ namespace AyCode.Database.Tests.Users
|
||||||
|
|
||||||
Assert.IsNotNull(user, "User is null");
|
Assert.IsNotNull(user, "User is null");
|
||||||
Assert.IsNotNull(user.Profile, "Profile is null");
|
Assert.IsNotNull(user.Profile, "Profile is null");
|
||||||
|
Assert.IsNotNull(user.Profile.Address, "Profile.Address is null");
|
||||||
|
|
||||||
Assert.AreEqual(email, user.EmailAddress);
|
Assert.AreEqual(email, user.EmailAddress);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,18 +11,20 @@ using Microsoft.EntityFrameworkCore;
|
||||||
using AyCode.Database.Extensions;
|
using AyCode.Database.Extensions;
|
||||||
using AyCode.Core.Consts;
|
using AyCode.Core.Consts;
|
||||||
using AyCode.Database.DbSets.Users;
|
using AyCode.Database.DbSets.Users;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
|
||||||
namespace AyCode.Database.DataLayers.Users
|
namespace AyCode.Database.DataLayers.Users
|
||||||
{
|
{
|
||||||
public abstract class AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider> : AcDalBase<TDbContext>
|
public abstract class AcUserDalBase<TDbContext, TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress> : AcDalBase<TDbContext>
|
||||||
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider>
|
where TDbContext : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TUserToken : class, IAcUserTokenBase
|
where TUserToken : class, IAcUserTokenBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
public TUser? GetUserById(Guid userId) => Session(x => x.GetUserById(userId));
|
public TUser? GetUserById(Guid userId) => Session(x => x.GetUserById(userId));
|
||||||
public Task<TUser?> GetUserByIdAsync(Guid userId) => SessionAsync(x => x.GetUserById(userId));
|
public Task<TUser?> GetUserByIdAsync(Guid userId) => SessionAsync(x => x.GetUserById(userId));
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
@ -10,12 +11,13 @@ using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace AyCode.Database.DbContexts.Users
|
namespace AyCode.Database.DbContexts.Users
|
||||||
{
|
{
|
||||||
public abstract class AcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider> : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider>
|
public abstract class AcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress> : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TUserToken : class, IAcUserTokenBase
|
where TUserToken : class, IAcUserTokenBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
public required DbSet<TUser> Users { get; set; }
|
public required DbSet<TUser> Users { get; set; }
|
||||||
public required DbSet<TUserToken> UserTokens { get; set; }
|
public required DbSet<TUserToken> UserTokens { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Database.DbSets.Users;
|
using AyCode.Database.DbSets.Users;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
@ -6,11 +7,12 @@ using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace AyCode.Database.DbContexts.Users;
|
namespace AyCode.Database.DbContexts.Users;
|
||||||
|
|
||||||
public interface IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider> : IAcUserDbSet<TUser, TProfile, TServiceProvider, TUserToServiceProvider>, IAcUserTokenDbSet<TUserToken>
|
public interface IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcUserDbSet<TUser, TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>, IAcUserTokenDbSet<TUserToken>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TUserToken : class, IAcUserTokenBase
|
where TUserToken : class, IAcUserTokenBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -1,13 +1,15 @@
|
||||||
using AyCode.Database.DbContexts;
|
using AyCode.Database.DbContexts;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
||||||
namespace AyCode.Database.DbSets.Users;
|
namespace AyCode.Database.DbSets.Users;
|
||||||
|
|
||||||
public interface IAcUserDbSet<TUser, TProfile, TServiceProvider, TUserToServiceProvider> : IAcUserDbSetBase<TUser>
|
public interface IAcUserDbSet<TUser, TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcUserDbSetBase<TUser>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{ }
|
{ }
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles;
|
||||||
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
|
||||||
|
namespace AyCode.Database.ModelBuilders.Profiles;
|
||||||
|
|
||||||
|
public static class AcProfileEntityTypeBuilderExtensions
|
||||||
|
{
|
||||||
|
public static void BuildEntityToAddressRelation<TAddressRelation, TAddress>(this EntityTypeBuilder<TAddressRelation> modelBuilder, bool autoInclude = true)
|
||||||
|
where TAddressRelation : class, IAcAddressRelation<TAddress>
|
||||||
|
where TAddress : class, IAcAddress
|
||||||
|
{
|
||||||
|
//modelBuilder.HasOne(e => e.Address).WithOne().HasForeignKey<TAddressRelation>(e => e.AddressId);
|
||||||
|
modelBuilder.Navigation(e => e.Address).AutoInclude(autoInclude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
using AyCode.Database.DbContexts;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles;
|
||||||
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
using AyCode.Interfaces.Users;
|
||||||
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
|
||||||
|
namespace AyCode.Database.ModelBuilders.Profiles;
|
||||||
|
|
||||||
|
public abstract class AcProfileEntityTypeConfigurations
|
||||||
|
{
|
||||||
|
public abstract class AcProfileEntityTypeDefaultConfiguration<TProfile, TProfileAddress> : IAcEntityTypeConfiguration<TProfile>
|
||||||
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
|
{
|
||||||
|
public virtual void Configure(EntityTypeBuilder<TProfile> modelBuilder)
|
||||||
|
{
|
||||||
|
modelBuilder.BuildEntityToAddressRelation<TProfile, TProfileAddress>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -2,7 +2,10 @@
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
using System.Formats.Tar;
|
using System.Formats.Tar;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace AyCode.Database.ModelBuilders.Users;
|
namespace AyCode.Database.ModelBuilders.Users;
|
||||||
|
|
||||||
|
|
@ -10,7 +13,7 @@ public static class AcUserEntityTypeBuilderExtensions
|
||||||
{
|
{
|
||||||
public static void BuildEntityToProfileRelation<TProfileRelation, TProfile>(this EntityTypeBuilder<TProfileRelation> modelBuilder, bool autoInclude = true)
|
public static void BuildEntityToProfileRelation<TProfileRelation, TProfile>(this EntityTypeBuilder<TProfileRelation> modelBuilder, bool autoInclude = true)
|
||||||
where TProfileRelation : class, IAcProfileRelation<TProfile>
|
where TProfileRelation : class, IAcProfileRelation<TProfile>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfileDtoBase
|
||||||
{
|
{
|
||||||
modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude);
|
modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude);
|
||||||
}
|
}
|
||||||
|
|
@ -36,11 +39,4 @@ public static class AcUserEntityTypeBuilderExtensions
|
||||||
modelBuilder.Navigation(e => e.ServiceProviders).AutoInclude(autoInclude);
|
modelBuilder.Navigation(e => e.ServiceProviders).AutoInclude(autoInclude);
|
||||||
modelBuilder.Navigation(e => e.UserToServiceProviders).AutoInclude(autoInclude);
|
modelBuilder.Navigation(e => e.UserToServiceProviders).AutoInclude(autoInclude);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void BuildEntityToAddressRelation<TProfileRelation, TProfile>(this EntityTypeBuilder<TProfileRelation> modelBuilder)
|
|
||||||
where TProfileRelation : class, IAcProfileRelation<TProfile>
|
|
||||||
where TProfile : class, IAcProfile
|
|
||||||
{
|
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Database.DbContexts;
|
using AyCode.Database.DbContexts;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
@ -6,16 +7,17 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||||
|
|
||||||
namespace AyCode.Database.ModelBuilders.Users;
|
namespace AyCode.Database.ModelBuilders.Users;
|
||||||
|
|
||||||
public abstract class AcUserEntityTypeDefaultConfiguration<TUser, TProfile, TServiceProvider, TUserToServiceProvider> : IAcEntityTypeConfiguration<TUser>
|
public abstract class AcUserEntityTypeDefaultConfiguration<TUser, TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcEntityTypeConfiguration<TUser>
|
||||||
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProvider<TUser, TUserToServiceProvider>
|
where TServiceProvider : class, IAcServiceProvider<TUser, TUserToServiceProvider>
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
public virtual void Configure(EntityTypeBuilder<TUser> modelBuilder)
|
public virtual void Configure(EntityTypeBuilder<TUser> modelBuilder)
|
||||||
{
|
{
|
||||||
modelBuilder.BuildEntityToProfileRelation<TUser, TProfile>();
|
modelBuilder.BuildEntityToProfileRelation<TUser, TProfile>();
|
||||||
modelBuilder.BuildEntityToAddressRelation<TUser, TProfile>();
|
//modelBuilder.BuildEntityToAddressRelation<TProfileAddress, TProfile, TProfileAddress>();
|
||||||
modelBuilder.BuildEntityToServiceProviderRelation<TUser, TServiceProvider, TUserToServiceProvider>();
|
modelBuilder.BuildEntityToServiceProviderRelation<TUser, TServiceProvider, TUserToServiceProvider>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,12 @@ using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
|
|
||||||
namespace AyCode.Entities.Profiles
|
namespace AyCode.Entities.Profiles
|
||||||
{
|
{
|
||||||
[Table("Profile")]
|
[Table("Profile")]
|
||||||
public abstract class AcProfile : IAcProfile
|
public abstract class AcProfile<TAddress> : IAcProfile<TAddress> where TAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
protected AcProfile() { }
|
protected AcProfile() { }
|
||||||
|
|
||||||
|
|
@ -23,6 +24,11 @@ namespace AyCode.Entities.Profiles
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
public Guid? UserMediaId { get; set; }
|
public Guid? UserMediaId { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public Guid AddressId { get; set; }
|
||||||
|
[ForeignKey(nameof(AddressId))]
|
||||||
|
public virtual TAddress Address { get; set; }
|
||||||
|
|
||||||
[Required]
|
[Required]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string? Description { get; set; }
|
public string? Description { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using System.Threading.Tasks;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
using AyCode.Entities.ServiceProviders;
|
using AyCode.Entities.ServiceProviders;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
|
||||||
//- szétszedni az UserToServiceProvider és UserToProduct mapping list-eket külön interface-re
|
//- szétszedni az UserToServiceProvider és UserToProduct mapping list-eket külön interface-re
|
||||||
|
|
@ -16,10 +17,11 @@ using AyCode.Interfaces.ServiceProviders;
|
||||||
namespace AyCode.Entities.Users
|
namespace AyCode.Entities.Users
|
||||||
{
|
{
|
||||||
[Table("Users")]
|
[Table("Users")]
|
||||||
public abstract class AcUser<TProfile, TServiceProvider, TUserToServiceProvider>() : IAcUser<TProfile, TServiceProvider, TUserToServiceProvider>
|
public abstract class AcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>() : IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.MediaInfo;
|
using AyCode.Interfaces.MediaInfo;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Profiles.Dtos;
|
namespace AyCode.Interfaces.Profiles.Dtos;
|
||||||
|
|
||||||
public interface IAcProfileDtoBase : IEntityGuid, IMediaInfo
|
public interface IAcProfileDtoBase : IEntityGuid, IMediaInfo, IAcAddressForeignKey
|
||||||
{
|
{
|
||||||
string Name { get; set; }
|
string Name { get; set; }
|
||||||
string? Description { get; set; }
|
string? Description { get; set; }
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Interfaces;
|
using AyCode.Interfaces;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
using AyCode.Interfaces.MediaInfo;
|
using AyCode.Interfaces.MediaInfo;
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
|
|
@ -6,6 +7,6 @@ using AyCode.Interfaces.Profiles.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Profiles;
|
namespace AyCode.Interfaces.Profiles;
|
||||||
|
|
||||||
public interface IAcProfile : IAcProfileDtoBase, ITimeStampInfo
|
public interface IAcProfile<TAddress> : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation<TAddress> where TAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
using AyCode.Interfaces.TimeStampInfo;
|
using AyCode.Interfaces.TimeStampInfo;
|
||||||
using AyCode.Interfaces.Users.Dtos;
|
using AyCode.Interfaces.Users.Dtos;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Profiles;
|
namespace AyCode.Interfaces.Profiles;
|
||||||
|
|
||||||
public interface IAcProfileRelation<TProfile> : IAcProfileForeignKey where TProfile : class, IAcProfile
|
public interface IAcProfileRelation<TProfile> : IAcProfileForeignKey where TProfile : class, IAcProfileDtoBase
|
||||||
{
|
{
|
||||||
public TProfile Profile { get; set; }
|
public TProfile Profile { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
using System.Net;
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Users.Dtos;
|
namespace AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
public interface IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider> : IAcUserDtoMinBase<TProfile>, IAcServiceProviderRelation<TServiceProvider, TUserToServiceProvider>
|
public interface IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcUserDtoMinBase<TProfile>, IAcServiceProviderRelation<TServiceProvider, TUserToServiceProvider>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Users.Dtos;
|
namespace AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
public interface IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider> : IAcUserBase, IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider>
|
public interface IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcUserBase, IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
|
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Profiles;
|
||||||
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Users.Dtos;
|
namespace AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
public interface IAcUserDtoMinBase<TProfile> : IEntityGuid, IAcProfileRelation<TProfile> where TProfile : class, IAcProfile
|
public interface IAcUserDtoMinBase<TProfile> : IEntityGuid, IAcProfileRelation<TProfile> where TProfile : class, IAcProfileDtoBase
|
||||||
{
|
{
|
||||||
public Guid AffiliateId { get; set; }
|
public Guid AffiliateId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
|
|
||||||
|
using AyCode.Interfaces.Addresses;
|
||||||
using AyCode.Interfaces.Entities;
|
using AyCode.Interfaces.Entities;
|
||||||
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.Dtos;
|
using AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Interfaces.Users;
|
namespace AyCode.Interfaces.Users;
|
||||||
|
|
||||||
public interface IAcUser<TProfile, TServiceProvider, TUserToServiceProvider> : IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider>
|
public interface IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> : IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{ }
|
{ }
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.Profiles.Dtos;
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
@ -6,19 +7,20 @@ using AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Models.Users;
|
namespace AyCode.Models.Users;
|
||||||
|
|
||||||
public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider> : AcUserModelDtoMinBase<TUserDto, TProfile, TProfileDto>, IAcServiceProviderRelation<TServiceProvider, TUserToServiceProvider>
|
public abstract class AcUserModelDtoBase<TUserDto, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider, TProfileAddress> : AcUserModelDtoMinBase<TUserDto, TProfile, TProfileDto, TProfileAddress>, IAcServiceProviderRelation<TServiceProvider, TUserToServiceProvider>
|
||||||
where TUserDto : class, IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUserDto : class, IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TProfileDto : class, IAcProfileDtoBase
|
where TProfileDto : class, IAcProfileDtoBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
public List<TServiceProvider> ServiceProviders { get; set; }
|
public List<TServiceProvider> ServiceProviders { get; set; }
|
||||||
public List<TUserToServiceProvider> UserToServiceProviders { get; set; }
|
public List<TUserToServiceProvider> UserToServiceProviders { get; set; }
|
||||||
|
|
||||||
|
|
||||||
protected AcUserModelDtoBase() {}
|
protected AcUserModelDtoBase() {}
|
||||||
protected AcUserModelDtoBase(IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider> user) : base(user)
|
protected AcUserModelDtoBase(IAcUserDtoBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> user) : base(user)
|
||||||
{
|
{
|
||||||
if (user.ServiceProviders.Count == 0) return;
|
if (user.ServiceProviders.Count == 0) return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.Profiles.Dtos;
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
using AyCode.Interfaces.ServiceProviders;
|
using AyCode.Interfaces.ServiceProviders;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
|
|
@ -6,15 +7,16 @@ using AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Models.Users;
|
namespace AyCode.Models.Users;
|
||||||
|
|
||||||
public abstract class AcUserModelDtoDetailBase<TUserDtoDetail, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider> : AcUserModelDtoBase<TUserDtoDetail, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider>
|
public abstract class AcUserModelDtoDetailBase<TUserDtoDetail, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider, TProfileAddress> : AcUserModelDtoBase<TUserDtoDetail, TProfile, TProfileDto, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TUserDtoDetail : class, IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider>
|
where TUserDtoDetail : class, IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TProfileDto : class, IAcProfileDtoBase
|
where TProfileDto : class, IAcProfileDtoBase
|
||||||
where TServiceProvider : class, IAcServiceProviderBase
|
where TServiceProvider : class, IAcServiceProviderBase
|
||||||
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
protected AcUserModelDtoDetailBase() {}
|
protected AcUserModelDtoDetailBase() {}
|
||||||
protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider> user) : base(user)
|
protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress> user) : base(user)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,14 +1,16 @@
|
||||||
using AyCode.Interfaces.Profiles;
|
using AyCode.Interfaces.Addresses;
|
||||||
|
using AyCode.Interfaces.Profiles;
|
||||||
using AyCode.Interfaces.Profiles.Dtos;
|
using AyCode.Interfaces.Profiles.Dtos;
|
||||||
using AyCode.Interfaces.Users;
|
using AyCode.Interfaces.Users;
|
||||||
using AyCode.Interfaces.Users.Dtos;
|
using AyCode.Interfaces.Users.Dtos;
|
||||||
|
|
||||||
namespace AyCode.Models.Users;
|
namespace AyCode.Models.Users;
|
||||||
|
|
||||||
public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto> : AcModelDtoBase
|
public abstract class AcUserModelDtoMinBase<TUserDtoMin, TProfile, TProfileDto, TProfileAddress> : AcModelDtoBase
|
||||||
where TUserDtoMin : class, IAcUserDtoMinBase<TProfile>
|
where TUserDtoMin : class, IAcUserDtoMinBase<TProfile>
|
||||||
where TProfile : class, IAcProfile
|
where TProfile : class, IAcProfile<TProfileAddress>
|
||||||
where TProfileDto : class, IAcProfileDtoBase
|
where TProfileDto : class, IAcProfileDtoBase
|
||||||
|
where TProfileAddress : class, IAcAddress
|
||||||
{
|
{
|
||||||
public TUserDtoMin UserDto { get; set;}
|
public TUserDtoMin UserDto { get; set;}
|
||||||
public TProfileDto? Profile { get; set; }
|
public TProfileDto? Profile { get; set; }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue