diff --git a/AyCode.Core.Tests.Internal/Entities/Company.cs b/AyCode.Core.Tests.Internal/Entities/Company.cs index fb5a2cd..006153f 100644 --- a/AyCode.Core.Tests.Internal/Entities/Company.cs +++ b/AyCode.Core.Tests.Internal/Entities/Company.cs @@ -8,7 +8,7 @@ using AyCode.Entities.ServiceProviders; namespace AyCode.Core.Tests.Internal.Entities; -public class Company : AcServiceProvider +public class Company : AcCompany { } \ No newline at end of file diff --git a/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs b/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs index 1da054a..f6c0174 100644 --- a/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs +++ b/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs @@ -8,7 +8,7 @@ using AyCode.Entities.Users; namespace AyCode.Core.Tests.Internal.Entities; -public class UserToCompany: AcUserToServiceProvider +public class UserToCompany: AcUserToCompany { } \ No newline at end of file diff --git a/AyCode.Database.Tests/Users/AcUserDalTestBase.cs b/AyCode.Database.Tests/Users/AcUserDalTestBase.cs index 60c2449..8aa98f3 100644 --- a/AyCode.Database.Tests/Users/AcUserDalTestBase.cs +++ b/AyCode.Database.Tests/Users/AcUserDalTestBase.cs @@ -13,15 +13,15 @@ using AyCode.Interfaces.Users; namespace AyCode.Database.Tests.Users { - public abstract class AcUserDalTestBase : AcDatabaseTestModelBase - where TDal : AcUserDalBase - where TDbContext : AcDbContextBase, IAcUserDbContextBase - where TUser : class, IAcUser + public abstract class AcUserDalTestBase : AcDatabaseTestModelBase + where TDal : AcUserDalBase + where TDbContext : AcDbContextBase, IAcUserDbContextBase + where TUser : class, IAcUser where TProfile : class, IAcProfile where TProfileAddress : class, IAcAddress where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TEmailMessage : class, IAcEmailMessageBase { [DataTestMethod] diff --git a/AyCode.Database/DataLayers/Users/AcUserDalBase.cs b/AyCode.Database/DataLayers/Users/AcUserDalBase.cs index beb5338..79f3bc5 100644 --- a/AyCode.Database/DataLayers/Users/AcUserDalBase.cs +++ b/AyCode.Database/DataLayers/Users/AcUserDalBase.cs @@ -21,13 +21,13 @@ using AyCode.Interfaces.ServiceProviders; namespace AyCode.Database.DataLayers.Users { - public abstract class AcUserDalBase : AcDalBase - where TDbContext : AcDbContextBase, IAcUserDbContextBase - where TUser : class, IAcUser + public abstract class AcUserDalBase : AcDalBase + where TDbContext : AcDbContextBase, IAcUserDbContextBase + where TUser : class, IAcUser where TProfile : class, IAcProfile where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress where TEmailMessage : class, IAcEmailMessageBase { diff --git a/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs b/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs index 500ef8d..9656c78 100644 --- a/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs +++ b/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs @@ -9,12 +9,12 @@ using Microsoft.EntityFrameworkCore; namespace AyCode.Database.DbContexts.Users { - public abstract class AcUserDbContextBase : AcDbContextBase, IAcUserDbContextBase - where TUser : class, IAcUser + public abstract class AcUserDbContextBase : AcDbContextBase, IAcUserDbContextBase + where TUser : class, IAcUser where TProfile : class, IAcProfile where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProvider//IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompany//IAcServiceProviderBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress where TEmailMessage : class, IAcEmailMessageBase { @@ -46,7 +46,7 @@ namespace AyCode.Database.DbContexts.Users { base.OnModelCreating(modelBuilder); - new AcUserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + new AcUserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); new AcProfileEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); //new EmailMessageEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity()); diff --git a/AyCode.Database/DbContexts/Users/IAcUserDbContextBase.cs b/AyCode.Database/DbContexts/Users/IAcUserDbContextBase.cs index d9e0a4c..6897129 100644 --- a/AyCode.Database/DbContexts/Users/IAcUserDbContextBase.cs +++ b/AyCode.Database/DbContexts/Users/IAcUserDbContextBase.cs @@ -10,16 +10,16 @@ using AyCode.Interfaces.Users; namespace AyCode.Database.DbContexts.Users; -public interface IAcUserDbContextBase - : IAcUserDbSet, IAcUserTokenDbSet, +public interface IAcUserDbContextBase + : IAcUserDbSet, IAcUserTokenDbSet, IAcAddressDbSetBase, IAcProfileDbSetBase, IAcEmailMessageDbSet - where TUser : class, IAcUser + where TUser : class, IAcUser where TProfile : class, IAcProfile where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress where TEmailMessage : class, IAcEmailMessageBase { diff --git a/AyCode.Database/DbSets/Users/IAcUserDbSet.cs b/AyCode.Database/DbSets/Users/IAcUserDbSet.cs index 52e5bd2..9700b6a 100644 --- a/AyCode.Database/DbSets/Users/IAcUserDbSet.cs +++ b/AyCode.Database/DbSets/Users/IAcUserDbSet.cs @@ -6,10 +6,10 @@ using AyCode.Interfaces.Users; namespace AyCode.Database.DbSets.Users; -public interface IAcUserDbSet : IAcUserDbSetBase - where TUser : class, IAcUser +public interface IAcUserDbSet : IAcUserDbSetBase + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { } \ No newline at end of file diff --git a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs index 67d3590..ecbee6c 100644 --- a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs +++ b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeBuilderExtensions.cs @@ -19,10 +19,11 @@ public static class AcUserEntityTypeBuilderExtensions modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude).IsRequired(); } - public static void BuildEntityToServiceProviderRelation(this EntityTypeBuilder modelBuilder, bool autoInclude = true) - where TServiceProviderRelation : class, IAcUserBase, IAcServiceProviderRelation - where TServiceProvider : class, IAcServiceProvider - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + public static void BuildEntityToServiceProviderRelation(this EntityTypeBuilder modelBuilder, bool autoInclude = true) + where TCompanyRelation : class, IAcUserBase, IAcCompanyRelation + where TCompany : class, IAcCompany + where TUserToServiceProvider : class, IAcUserToCompanyBase + where TProfile : class, IAcProfileDtoBase { modelBuilder .HasMany(e => e.ServiceProviders) diff --git a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs index 3534638..95c5477 100644 --- a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs +++ b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs @@ -7,17 +7,17 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace AyCode.Database.ModelBuilders.Users; -public class AcUserEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration - where TUser : class, IAcUser +public class AcUserEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProvider - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompany + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public virtual void Configure(EntityTypeBuilder modelBuilder) { modelBuilder.BuildEntityToProfileRelation(); //modelBuilder.BuildEntityToAddressRelation(); - modelBuilder.BuildEntityToServiceProviderRelation(); + modelBuilder.BuildEntityToServiceProviderRelation(); } } diff --git a/AyCode.Entities/ServiceProviders/AcServiceProvider.cs b/AyCode.Entities/ServiceProviders/AcCompany.cs similarity index 59% rename from AyCode.Entities/ServiceProviders/AcServiceProvider.cs rename to AyCode.Entities/ServiceProviders/AcCompany.cs index 4911b33..3599304 100644 --- a/AyCode.Entities/ServiceProviders/AcServiceProvider.cs +++ b/AyCode.Entities/ServiceProviders/AcCompany.cs @@ -1,15 +1,17 @@  using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; +using AyCode.Interfaces.Profiles.Dtos; using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.Users; namespace AyCode.Entities.ServiceProviders { [Table("ServiceProviders")] - public abstract class AcServiceProvider : IAcServiceProvider + public abstract class AcCompany : IAcCompany where TUser : class, IAcUserBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TUserToServiceProvider : class, IAcUserToCompanyBase + where TProfile : class, IAcProfileDtoBase { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] public Guid Id { get; set; } @@ -17,6 +19,11 @@ namespace AyCode.Entities.ServiceProviders [Required] public Guid OwnerId { get; set; } + [NotMapped] //COMPANY_RENAME - J. + public Guid ProfileId { get; set; } + [NotMapped] //COMPANY_RENAME - J. + public TProfile Profile { get; set; } + [Required] public string Name { get; set; } @@ -33,19 +40,19 @@ namespace AyCode.Entities.ServiceProviders public DateTime Modified { get; set; } - protected AcServiceProvider() + protected AcCompany() { } - protected AcServiceProvider(string name, Guid ownerId) : this(Guid.NewGuid(), name, ownerId) + protected AcCompany(string name, Guid ownerId) : this(Guid.NewGuid(), name, ownerId) { } - protected AcServiceProvider(Guid id, string name, Guid ownerId) : this(id, name, ownerId, Guid.NewGuid()) + protected AcCompany(Guid id, string name, Guid ownerId) : this(id, name, ownerId, Guid.NewGuid()) { } - protected AcServiceProvider(Guid id, string name, Guid ownerId, Guid affiliateId, double? commissionPercent = null) : this() + protected AcCompany(Guid id, string name, Guid ownerId, Guid affiliateId, double? commissionPercent = null) : this() { Id = id; Name = name; diff --git a/AyCode.Entities/Users/AcUser.cs b/AyCode.Entities/Users/AcUser.cs index a71e947..9e9f50f 100644 --- a/AyCode.Entities/Users/AcUser.cs +++ b/AyCode.Entities/Users/AcUser.cs @@ -11,10 +11,10 @@ using AyCode.Interfaces.ServiceProviders; namespace AyCode.Entities.Users { [Table("Users")] - public abstract class AcUser() : IAcUser + public abstract class AcUser() : IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] @@ -39,7 +39,7 @@ namespace AyCode.Entities.Users public virtual TProfile Profile { get; set; } //[NotMapped] - public virtual List ServiceProviders { get; set; } + public virtual List ServiceProviders { get; set; } public virtual List UserToServiceProviders { get; set; } public DateTime Created { get; set; } diff --git a/AyCode.Entities/Users/AcUserToServiceProvider.cs b/AyCode.Entities/Users/AcUserToCompany.cs similarity index 70% rename from AyCode.Entities/Users/AcUserToServiceProvider.cs rename to AyCode.Entities/Users/AcUserToCompany.cs index a110490..a6c87f9 100644 --- a/AyCode.Entities/Users/AcUserToServiceProvider.cs +++ b/AyCode.Entities/Users/AcUserToCompany.cs @@ -6,9 +6,9 @@ using AyCode.Interfaces.Users; namespace AyCode.Entities.Users; [Table("UserToServiceProvider")] -public abstract class AcUserToServiceProvider : IAcUserToAcServiceProvider +public abstract class AcUserToCompany : IAcUserToCompany where TUser : class, IAcUserBase - where TServiceProvider : class, IAcServiceProviderBase + where TCompany : class, IAcCompanyBase { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] public Guid Id { get; set; } @@ -17,7 +17,8 @@ public abstract class AcUserToServiceProvider : IAcUser public Guid ServiceProviderId { get; set; } public virtual TUser User { get; set; } - public virtual TServiceProvider ServiceProvider { get; set; } + [ForeignKey("ServiceProviderId")] //COMPANY_RENAME - J. + public virtual TCompany Company { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } diff --git a/AyCode.Interfaces.Server/Logins/IAcLoggedInModelBase.cs b/AyCode.Interfaces.Server/Logins/IAcLoggedInModelBase.cs index 8b12064..1016c71 100644 --- a/AyCode.Interfaces.Server/Logins/IAcLoggedInModelBase.cs +++ b/AyCode.Interfaces.Server/Logins/IAcLoggedInModelBase.cs @@ -6,13 +6,13 @@ using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Server.Logins; -public interface IAcLoggedInModelBase : IAcLoginDtoBase +public interface IAcLoggedInModelBase : IAcLoginDtoBase - where TUser : class, IAcUser + where TUser : class, IAcUser where TUserToken : class, IAcUserTokenBase where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { bool IsLoggedIn { get; } diff --git a/AyCode.Interfaces.Server/Logins/IAcLoginServiceServer.cs b/AyCode.Interfaces.Server/Logins/IAcLoginServiceServer.cs index f9c6054..1352f2c 100644 --- a/AyCode.Interfaces.Server/Logins/IAcLoginServiceServer.cs +++ b/AyCode.Interfaces.Server/Logins/IAcLoginServiceServer.cs @@ -7,14 +7,14 @@ using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Server.Logins; -public interface IAcLoginServiceServer : IAcLoginServiceCommon - where TResultLoggedInModel: class, IAcLoggedInModelBase +public interface IAcLoginServiceServer : IAcLoginServiceCommon + where TResultLoggedInModel: class, IAcLoggedInModelBase - where TUser : class, IAcUser + where TUser : class, IAcUser where TUserToken : class, IAcUserTokenBase where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public TResultLoggedInModel? LoggedInModel { get; } diff --git a/AyCode.Interfaces/Logins/IAcLoginServiceBase.cs b/AyCode.Interfaces/Logins/IAcLoginServiceBase.cs index cac39f7..e9949f3 100644 --- a/AyCode.Interfaces/Logins/IAcLoginServiceBase.cs +++ b/AyCode.Interfaces/Logins/IAcLoginServiceBase.cs @@ -5,10 +5,10 @@ using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Logins; -public interface IAcLoginServiceBase where TUser : class, IAcUser +public interface IAcLoginServiceBase where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public bool IsLoggedIn { get; } diff --git a/AyCode.Interfaces/Logins/IAcLoginServiceClient.cs b/AyCode.Interfaces/Logins/IAcLoginServiceClient.cs index a2e31ab..3eb1f0b 100644 --- a/AyCode.Interfaces/Logins/IAcLoginServiceClient.cs +++ b/AyCode.Interfaces/Logins/IAcLoginServiceClient.cs @@ -5,11 +5,11 @@ using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Logins; -public interface IAcLoginServiceClient : IAcLoginServiceCommon - where TUser : class, IAcUser +public interface IAcLoginServiceClient : IAcLoginServiceCommon + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Logins/IAcLoginServiceCommon.cs b/AyCode.Interfaces/Logins/IAcLoginServiceCommon.cs index 87faec1..fbd939e 100644 --- a/AyCode.Interfaces/Logins/IAcLoginServiceCommon.cs +++ b/AyCode.Interfaces/Logins/IAcLoginServiceCommon.cs @@ -6,11 +6,11 @@ using AyCode.Interfaces.Users; namespace AyCode.Interfaces.Logins; -public interface IAcLoginServiceCommon : IAcLoginServiceBase - where TUser : class, IAcUser +public interface IAcLoginServiceCommon : IAcLoginServiceBase + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public bool Logout(); diff --git a/AyCode.Interfaces/ServiceProviders/IAcCompany.cs b/AyCode.Interfaces/ServiceProviders/IAcCompany.cs new file mode 100644 index 0000000..3a3e1a0 --- /dev/null +++ b/AyCode.Interfaces/ServiceProviders/IAcCompany.cs @@ -0,0 +1,11 @@ +using AyCode.Interfaces.Profiles.Dtos; +using AyCode.Interfaces.Profiles; +using AyCode.Interfaces.Users; + +namespace AyCode.Interfaces.ServiceProviders; + +public interface IAcCompany : IAcCompanyBase, IAcUsersRelation, IAcProfileRelation + where TUser : IAcUserBase + where TUserToServiceProvider : IAcUserToCompanyBase + where TProfile : IAcProfileDtoBase +{} \ No newline at end of file diff --git a/AyCode.Interfaces/ServiceProviders/IAcServiceProviderBase.cs b/AyCode.Interfaces/ServiceProviders/IAcCompanyBase.cs similarity index 68% rename from AyCode.Interfaces/ServiceProviders/IAcServiceProviderBase.cs rename to AyCode.Interfaces/ServiceProviders/IAcCompanyBase.cs index 6f57dcb..e4e7c32 100644 --- a/AyCode.Interfaces/ServiceProviders/IAcServiceProviderBase.cs +++ b/AyCode.Interfaces/ServiceProviders/IAcCompanyBase.cs @@ -1,10 +1,11 @@  using AyCode.Interfaces.Entities; +using AyCode.Interfaces.Profiles; using AyCode.Interfaces.TimeStampInfo; namespace AyCode.Interfaces.ServiceProviders; -public interface IAcServiceProviderBase : IEntityGuid, ITimeStampInfo, IOwnerId +public interface IAcCompanyBase : IEntityGuid, IAcProfileForeignKey, ITimeStampInfo, IOwnerId { string Name { get; set; } diff --git a/AyCode.Interfaces/ServiceProviders/IServiceProviderForeignKey.cs b/AyCode.Interfaces/ServiceProviders/IAcCompanyForeignKey.cs similarity index 68% rename from AyCode.Interfaces/ServiceProviders/IServiceProviderForeignKey.cs rename to AyCode.Interfaces/ServiceProviders/IAcCompanyForeignKey.cs index 6a376b1..bd9e206 100644 --- a/AyCode.Interfaces/ServiceProviders/IServiceProviderForeignKey.cs +++ b/AyCode.Interfaces/ServiceProviders/IAcCompanyForeignKey.cs @@ -1,6 +1,6 @@ namespace AyCode.Interfaces.ServiceProviders; -public interface IAcServiceProviderForeignKey +public interface IAcCompanyForeignKey { public Guid ServiceProviderId { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/ServiceProviders/IAcCompanyRelation.cs b/AyCode.Interfaces/ServiceProviders/IAcCompanyRelation.cs new file mode 100644 index 0000000..90b8e9f --- /dev/null +++ b/AyCode.Interfaces/ServiceProviders/IAcCompanyRelation.cs @@ -0,0 +1,11 @@ +using AyCode.Interfaces.Users; + +namespace AyCode.Interfaces.ServiceProviders; + +public interface IAcCompanyRelation + where TCompany : IAcCompanyBase + where TUserToServiceProvider : IAcUserToCompanyBase +{ + public List ServiceProviders { get; set; } + public List UserToServiceProviders { get; set; } +} \ No newline at end of file diff --git a/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs b/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs deleted file mode 100644 index dac1563..0000000 --- a/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs +++ /dev/null @@ -1,8 +0,0 @@ -using AyCode.Interfaces.Users; - -namespace AyCode.Interfaces.ServiceProviders; - -public interface IAcServiceProvider : IAcServiceProviderBase, IAcUsersRelation - where TUser : IAcUserBase - where TUserToServiceProvider : IAcUserToServiceProviderBase -{} \ No newline at end of file diff --git a/AyCode.Interfaces/ServiceProviders/IAcServiceProviderRelation.cs b/AyCode.Interfaces/ServiceProviders/IAcServiceProviderRelation.cs deleted file mode 100644 index fae705c..0000000 --- a/AyCode.Interfaces/ServiceProviders/IAcServiceProviderRelation.cs +++ /dev/null @@ -1,11 +0,0 @@ -using AyCode.Interfaces.Users; - -namespace AyCode.Interfaces.ServiceProviders; - -public interface IAcServiceProviderRelation - where TServiceProvider : IAcServiceProviderBase - where TUserToServiceProvider : IAcUserToServiceProviderBase -{ - public List ServiceProviders { get; set; } - public List UserToServiceProviders { get; set; } -} \ No newline at end of file diff --git a/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs b/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs index 4a31e54..00dc072 100644 --- a/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs +++ b/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs @@ -4,10 +4,10 @@ using AyCode.Interfaces.Addresses; namespace AyCode.Interfaces.Users.Dtos; -public interface IAcUserDtoBase : IAcUserDtoMinBase, IAcServiceProviderRelation +public interface IAcUserDtoBase : IAcUserDtoMinBase, IAcCompanyRelation where TProfile : IAcProfile - where TServiceProvider : IAcServiceProviderBase - where TUserToServiceProvider : IAcUserToServiceProviderBase + where TCompany : IAcCompanyBase + where TUserToServiceProvider : IAcUserToCompanyBase where TProfileAddress : IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs b/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs index 5004652..c9060e2 100644 --- a/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs +++ b/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs @@ -4,10 +4,10 @@ using AyCode.Interfaces.ServiceProviders; namespace AyCode.Interfaces.Users.Dtos; -public interface IAcUserDtoDetailBase : IAcUserBase, IAcUserDtoBase +public interface IAcUserDtoDetailBase : IAcUserBase, IAcUserDtoBase where TProfile : IAcProfile - where TServiceProvider : IAcServiceProviderBase - where TUserToServiceProvider : IAcUserToServiceProviderBase + where TCompany : IAcCompanyBase + where TUserToServiceProvider : IAcUserToCompanyBase where TProfileAddress : IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUser.cs b/AyCode.Interfaces/Users/IAcUser.cs index eaaab49..4085dd3 100644 --- a/AyCode.Interfaces/Users/IAcUser.cs +++ b/AyCode.Interfaces/Users/IAcUser.cs @@ -6,9 +6,9 @@ using AyCode.Interfaces.Users.Dtos; namespace AyCode.Interfaces.Users; -public interface IAcUser : IAcUserDtoDetailBase, IAcProfileForeignKey +public interface IAcUser : IAcUserDtoDetailBase, IAcProfileForeignKey where TProfile : IAcProfile - where TServiceProvider : IAcServiceProviderBase - where TUserToServiceProvider : IAcUserToServiceProviderBase + where TCompany : IAcCompanyBase + where TUserToServiceProvider : IAcUserToCompanyBase where TProfileAddress : IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUserToServiceProvider.cs b/AyCode.Interfaces/Users/IAcUserToCompany.cs similarity index 51% rename from AyCode.Interfaces/Users/IAcUserToServiceProvider.cs rename to AyCode.Interfaces/Users/IAcUserToCompany.cs index 3573b1b..2cad9a4 100644 --- a/AyCode.Interfaces/Users/IAcUserToServiceProvider.cs +++ b/AyCode.Interfaces/Users/IAcUserToCompany.cs @@ -4,10 +4,10 @@ using AyCode.Interfaces.TimeStampInfo; namespace AyCode.Interfaces.Users; -public interface IAcUserToAcServiceProvider : IAcUserToServiceProviderBase +public interface IAcUserToCompany : IAcUserToCompanyBase where TUser : class, IAcUserBase - where TServiceProvider : class, IAcServiceProviderBase + where TCompany : class, IAcCompanyBase { public TUser User { get; set; } - public TServiceProvider ServiceProvider { get; set; } + public TCompany Company { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUserToServiceProviderBase.cs b/AyCode.Interfaces/Users/IAcUserToCompanyBase.cs similarity index 55% rename from AyCode.Interfaces/Users/IAcUserToServiceProviderBase.cs rename to AyCode.Interfaces/Users/IAcUserToCompanyBase.cs index bc1e183..28fb8f2 100644 --- a/AyCode.Interfaces/Users/IAcUserToServiceProviderBase.cs +++ b/AyCode.Interfaces/Users/IAcUserToCompanyBase.cs @@ -4,6 +4,6 @@ using AyCode.Interfaces.TimeStampInfo; namespace AyCode.Interfaces.Users; -public interface IAcUserToServiceProviderBase : IEntityGuid, IAcUserForeignKey, IAcServiceProviderForeignKey, ITimeStampInfo +public interface IAcUserToCompanyBase : IEntityGuid, IAcUserForeignKey, IAcCompanyForeignKey, ITimeStampInfo { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUserToServiceProviderRelation.cs b/AyCode.Interfaces/Users/IAcUserToServiceProviderRelation.cs index e0a72ea..27f8ea5 100644 --- a/AyCode.Interfaces/Users/IAcUserToServiceProviderRelation.cs +++ b/AyCode.Interfaces/Users/IAcUserToServiceProviderRelation.cs @@ -2,11 +2,11 @@ namespace AyCode.Interfaces.Users; -public interface IAcUserToServiceProviderRelation - where TUser : class, IAcUserBase, IAcServiceProviderRelation - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase +public interface IAcUserToServiceProviderRelation + where TUser : class, IAcUserBase, IAcCompanyRelation + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase { public TUser User { get; set; } - public TServiceProvider ServiceProvider { get; set; } + public TCompany ServiceProvider { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUsersRelation.cs b/AyCode.Interfaces/Users/IAcUsersRelation.cs index 3b1e6d9..74d753a 100644 --- a/AyCode.Interfaces/Users/IAcUsersRelation.cs +++ b/AyCode.Interfaces/Users/IAcUsersRelation.cs @@ -2,7 +2,7 @@ public interface IAcUsersRelation where TUser : IAcUserBase - where TUserToServiceProvider : IAcUserToServiceProviderBase + where TUserToServiceProvider : IAcUserToCompanyBase { public List Users { get; set; } public List UserToServiceProviders { get; set; } diff --git a/AyCode.Models.Server/Logins/AcLoggedInModelServer.cs b/AyCode.Models.Server/Logins/AcLoggedInModelServer.cs index 647ebf5..7c84bc3 100644 --- a/AyCode.Models.Server/Logins/AcLoggedInModelServer.cs +++ b/AyCode.Models.Server/Logins/AcLoggedInModelServer.cs @@ -7,13 +7,13 @@ using AyCode.Interfaces.Server.Logins; namespace AyCode.Models.Server.Logins; -public class AcLoggedInModelServer : IAcLoggedInModelBase +public class AcLoggedInModelServer : IAcLoggedInModelBase - where TUser : class, IAcUser + where TUser : class, IAcUser where TUserToken : class, IAcUserTokenBase where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public bool IsLoggedIn => LoggedInUser != null; diff --git a/AyCode.Models/Users/AcUserModelDtoBase.cs b/AyCode.Models/Users/AcUserModelDtoBase.cs index c7f4c0c..467b222 100644 --- a/AyCode.Models/Users/AcUserModelDtoBase.cs +++ b/AyCode.Models/Users/AcUserModelDtoBase.cs @@ -7,20 +7,20 @@ using AyCode.Interfaces.Users.Dtos; namespace AyCode.Models.Users; -public abstract class AcUserModelDtoBase : AcUserModelDtoMinBase, IAcServiceProviderRelation - where TUserDto : class, IAcUserDtoBase +public abstract class AcUserModelDtoBase : AcUserModelDtoMinBase, IAcCompanyRelation + where TUserDto : class, IAcUserDtoBase where TProfile : class, IAcProfile where TProfileDto : class, IAcProfileDtoBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { - public List ServiceProviders { get; set; } + public List ServiceProviders { get; set; } public List UserToServiceProviders { get; set; } protected AcUserModelDtoBase() {} - protected AcUserModelDtoBase(IAcUserDtoBase user) : base(user) + protected AcUserModelDtoBase(IAcUserDtoBase user) : base(user) { Profile.AddressId = user.Profile.AddressId; UserDto.AffiliateId = user.AffiliateId; @@ -28,15 +28,15 @@ public abstract class AcUserModelDtoBase(user.ServiceProviders); + //ServiceProviders = new List(user.ServiceProviders); //UserToServiceProviders = new List(user.UserToServiceProviders); - ServiceProviders = new List(user.ServiceProviders.Count); + ServiceProviders = new List(user.ServiceProviders.Count); UserToServiceProviders = new List(user.UserToServiceProviders.Count); foreach (var serviceProvider in user.ServiceProviders) { - var newProvider = Activator.CreateInstance(); + var newProvider = Activator.CreateInstance(); newProvider.Id = serviceProvider.Id; newProvider.Name = serviceProvider.Name; diff --git a/AyCode.Models/Users/AcUserModelDtoDetailBase.cs b/AyCode.Models/Users/AcUserModelDtoDetailBase.cs index 232e6c1..96135ab 100644 --- a/AyCode.Models/Users/AcUserModelDtoDetailBase.cs +++ b/AyCode.Models/Users/AcUserModelDtoDetailBase.cs @@ -7,16 +7,16 @@ using AyCode.Interfaces.Users.Dtos; namespace AyCode.Models.Users; -public abstract class AcUserModelDtoDetailBase : AcUserModelDtoBase - where TUserDtoDetail : class, IAcUserDtoDetailBase +public abstract class AcUserModelDtoDetailBase : AcUserModelDtoBase + where TUserDtoDetail : class, IAcUserDtoDetailBase where TProfile : class, IAcProfile where TProfileDto : class, IAcProfileDtoBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { protected AcUserModelDtoDetailBase() {} - protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase user) : base(user) + protected AcUserModelDtoDetailBase(IAcUserDtoDetailBase user) : base(user) { UserDto.EmailAddress = user.EmailAddress; UserDto.PhoneNumber = user.PhoneNumber; diff --git a/AyCode.Services.Server.Tests/LoginServices/AcLoginServiceServerTestBase.cs b/AyCode.Services.Server.Tests/LoginServices/AcLoginServiceServerTestBase.cs index f211a75..064276a 100644 --- a/AyCode.Services.Server.Tests/LoginServices/AcLoginServiceServerTestBase.cs +++ b/AyCode.Services.Server.Tests/LoginServices/AcLoginServiceServerTestBase.cs @@ -15,17 +15,17 @@ using AyCode.Utils.Extensions; namespace AyCode.Services.Server.Tests.LoginServices { - public abstract class AcLoginServiceServerTestBase : AcDatabaseTestModelBase - where TDal : AcUserDalBase - where TDbContext : AcDbContextBase, IAcUserDbContextBase - where TLoginServiceServer : class, IAcLoginServiceServer - where TResultLoggedInModel: class, IAcLoggedInModelBase - where TUser : class, IAcUser + public abstract class AcLoginServiceServerTestBase : AcDatabaseTestModelBase + where TDal : AcUserDalBase + where TDbContext : AcDbContextBase, IAcUserDbContextBase + where TLoginServiceServer : class, IAcLoginServiceServer + where TResultLoggedInModel: class, IAcLoggedInModelBase + where TUser : class, IAcUser where TProfile : class, IAcProfile where TProfileAddress : class, IAcAddress where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TEmailMessage : class, IAcEmailMessageBase { [DataTestMethod] diff --git a/AyCode.Services.Server/Logins/AcLoginServiceServer.cs b/AyCode.Services.Server/Logins/AcLoginServiceServer.cs index 26d3e57..f8f4b22 100644 --- a/AyCode.Services.Server/Logins/AcLoginServiceServer.cs +++ b/AyCode.Services.Server/Logins/AcLoginServiceServer.cs @@ -29,17 +29,17 @@ using Microsoft.Extensions.Configuration; namespace AyCode.Services.Server.Logins; -public class AcLoginServiceServer(TDal userDal, IConfiguration configuration) - : AcLoginServiceBase, IAcLoginServiceServer +public class AcLoginServiceServer(TDal userDal, IConfiguration configuration) + : AcLoginServiceBase, IAcLoginServiceServer - where TResultLoggedInModel : class, IAcLoggedInModelBase - where TDal : AcUserDalBase - where TDbContext : AcDbContextBase, IAcUserDbContextBase - where TUser : class, IAcUser + where TResultLoggedInModel : class, IAcLoggedInModelBase + where TDal : AcUserDalBase + where TDbContext : AcDbContextBase, IAcUserDbContextBase + where TUser : class, IAcUser where TUserToken : class, IAcUserTokenBase where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress where TEmailMessage : class, IAcEmailMessageBase { diff --git a/AyCode.Services/Logins/AcLoginServiceBase.cs b/AyCode.Services/Logins/AcLoginServiceBase.cs index c0641a8..3f1a8c9 100644 --- a/AyCode.Services/Logins/AcLoginServiceBase.cs +++ b/AyCode.Services/Logins/AcLoginServiceBase.cs @@ -6,11 +6,11 @@ using AyCode.Interfaces.Users; namespace AyCode.Services.Logins; -public abstract class AcLoginServiceBase : IAcLoginServiceBase - where TUser : class, IAcUser +public abstract class AcLoginServiceBase : IAcLoginServiceBase + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public virtual bool IsLoggedIn => LoggedInUser != null; diff --git a/AyCode.Services/Logins/AcLoginServiceClient.cs b/AyCode.Services/Logins/AcLoginServiceClient.cs index e290e5d..f0e74ac 100644 --- a/AyCode.Services/Logins/AcLoginServiceClient.cs +++ b/AyCode.Services/Logins/AcLoginServiceClient.cs @@ -8,13 +8,13 @@ using AyCode.Interfaces.Users; namespace AyCode.Services.Logins; -public class AcLoginServiceClient - : AcLoginServiceBase, IAcLoginServiceClient +public class AcLoginServiceClient + : AcLoginServiceBase, IAcLoginServiceClient - where TUser : class, IAcUser + where TUser : class, IAcUser where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TCompany : class, IAcCompanyBase + where TUserToServiceProvider : class, IAcUserToCompanyBase where TProfileAddress : class, IAcAddress { public virtual TUser? Login(string email, string password, out string accessToken)