diff --git a/AyCode.Core.Tests.Internal/Entities/Address.cs b/AyCode.Core.Tests.Internal/Entities/Address.cs index d964178..e2d114e 100644 --- a/AyCode.Core.Tests.Internal/Entities/Address.cs +++ b/AyCode.Core.Tests.Internal/Entities/Address.cs @@ -9,9 +9,7 @@ using AyCode.Interfaces.Addresses.Dtos; [assembly: InternalsVisibleTo("AyCode.Database.Tests.Users.Internals.UserDbContext")] namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// + public class Address : AcAddress, IAcAddress, IAcAddressDtoBase { diff --git a/AyCode.Core.Tests.Internal/Entities/Company.cs b/AyCode.Core.Tests.Internal/Entities/Company.cs index c46919b..fb5a2cd 100644 --- a/AyCode.Core.Tests.Internal/Entities/Company.cs +++ b/AyCode.Core.Tests.Internal/Entities/Company.cs @@ -8,9 +8,6 @@ using AyCode.Entities.ServiceProviders; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class Company : AcServiceProvider { diff --git a/AyCode.Core.Tests.Internal/Entities/EmailMessage.cs b/AyCode.Core.Tests.Internal/Entities/EmailMessage.cs index 751c377..f1f21bb 100644 --- a/AyCode.Core.Tests.Internal/Entities/EmailMessage.cs +++ b/AyCode.Core.Tests.Internal/Entities/EmailMessage.cs @@ -8,9 +8,6 @@ using AyCode.Entities.Messages; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class EmailMessage : AcEmailMessage { diff --git a/AyCode.Core.Tests.Internal/Entities/EmailRecipient.cs b/AyCode.Core.Tests.Internal/Entities/EmailRecipient.cs index 3baff3b..eddf856 100644 --- a/AyCode.Core.Tests.Internal/Entities/EmailRecipient.cs +++ b/AyCode.Core.Tests.Internal/Entities/EmailRecipient.cs @@ -2,9 +2,6 @@ namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class EmailRecipient : AcEmailRecipient { public EmailRecipient() diff --git a/AyCode.Core.Tests.Internal/Entities/Profile.cs b/AyCode.Core.Tests.Internal/Entities/Profile.cs index 45340c5..f48ef0d 100644 --- a/AyCode.Core.Tests.Internal/Entities/Profile.cs +++ b/AyCode.Core.Tests.Internal/Entities/Profile.cs @@ -8,9 +8,6 @@ using AyCode.Entities.Profiles; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class Profile : AcProfile
{ diff --git a/AyCode.Core.Tests.Internal/Entities/User.cs b/AyCode.Core.Tests.Internal/Entities/User.cs index 00fa905..4b45675 100644 --- a/AyCode.Core.Tests.Internal/Entities/User.cs +++ b/AyCode.Core.Tests.Internal/Entities/User.cs @@ -8,10 +8,15 @@ using AyCode.Entities.Users; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// + public class User : AcUser { - + public User() { } + public User(string email, string password) : this(Guid.NewGuid(), email, password) { } + public User(Guid id, string email, string password) : base(id, email, password) + { } + public User(Guid id, string email, string phoneNumber, string password) : base(id, email, phoneNumber, password) + { } + public User(Guid id, string email, string phoneNumber, string password, string refreshToken) : base(id, email, phoneNumber, password, refreshToken) + { } } \ 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 b31ce54..1da054a 100644 --- a/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs +++ b/AyCode.Core.Tests.Internal/Entities/UserToCompany.cs @@ -8,9 +8,6 @@ using AyCode.Entities.Users; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class UserToCompany: AcUserToServiceProvider { diff --git a/AyCode.Core.Tests.Internal/Entities/UserToken.cs b/AyCode.Core.Tests.Internal/Entities/UserToken.cs index 8dee8ef..b4150c3 100644 --- a/AyCode.Core.Tests.Internal/Entities/UserToken.cs +++ b/AyCode.Core.Tests.Internal/Entities/UserToken.cs @@ -8,9 +8,6 @@ using AyCode.Entities.Users; namespace AyCode.Core.Tests.Internal.Entities; -/// -/// DON'T USE!!! -/// public class UserToken : AcUserTokenBase { diff --git a/AyCode.Core.Tests/TestModelBase.cs b/AyCode.Core.Tests/TestModelBase.cs index ba9f421..eb002f6 100644 --- a/AyCode.Core.Tests/TestModelBase.cs +++ b/AyCode.Core.Tests/TestModelBase.cs @@ -1,24 +1,12 @@ -using Microsoft.Extensions.Configuration; +using AyCode.Core.Consts; +using Microsoft.Extensions.Configuration; namespace AyCode.Core.Tests; public abstract class TestModelBase { - protected IConfiguration AppSettingsConfiguration; - protected TestModelBase() { //if (IsProductVersion) throw new Exception("IsProductVersion!!!!!"); - - AppSettingsConfiguration = InitAppSettingsConfiguration(); - } - - protected IConfiguration InitAppSettingsConfiguration(string appSettingsFileName = "appsettings.json") - { - var config = new ConfigurationBuilder() - .AddJsonFile(appSettingsFileName) - .AddEnvironmentVariables() - .Build(); - return config; } } \ No newline at end of file diff --git a/AyCode.Core/AyCode.Core.csproj b/AyCode.Core/AyCode.Core.csproj index 1966c49..b703459 100644 --- a/AyCode.Core/AyCode.Core.csproj +++ b/AyCode.Core/AyCode.Core.csproj @@ -15,6 +15,8 @@ + + diff --git a/AyCode.Core/Consts/AcEnv.cs b/AyCode.Core/Consts/AcEnv.cs index 23e40cf..47fe73a 100644 --- a/AyCode.Core/Consts/AcEnv.cs +++ b/AyCode.Core/Consts/AcEnv.cs @@ -1,5 +1,7 @@ //using Anata.Logger; +using Microsoft.Extensions.Configuration; + namespace AyCode.Core.Consts { //TODO: Adatbázisból kéne a környezeti beállításokat - J. @@ -18,5 +20,19 @@ namespace AyCode.Core.Consts //public static LogLevel LogLevel = LogLevel.Detail; public static ulong MaxLogItemsPerSession = 250; + + private static IConfiguration? _appConfiguration = null; + public static IConfiguration AppConfiguration => _appConfiguration ??= GetAppSettingsConfiguration(); + + public static IConfiguration GetAppSettingsConfiguration(string appSettingsFileName = "appsettings.json") + { + var config = new ConfigurationBuilder() + .AddJsonFile(appSettingsFileName) + .AddEnvironmentVariables() + .Build(); + + return config; + } + } } \ No newline at end of file diff --git a/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj b/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj index 87fa9c9..8693fa6 100644 --- a/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj +++ b/AyCode.Database.Tests.Internal/AyCode.Database.Tests.Internal.csproj @@ -9,6 +9,16 @@ true + + + + + + + PreserveNewest + + + all diff --git a/AyCode.Database.Tests.Internal/DatabaseTestBase.cs b/AyCode.Database.Tests.Internal/DatabaseTestBase.cs index 57f7ae6..0d33857 100644 --- a/AyCode.Database.Tests.Internal/DatabaseTestBase.cs +++ b/AyCode.Database.Tests.Internal/DatabaseTestBase.cs @@ -1,9 +1,10 @@ using AyCode.Database.DbContexts; +using AyCode.Database.Tests.Internal.Users; namespace AyCode.Database.Tests.Internal { [TestClass] - public class DatabaseTestBase : AcDatabaseTestBase + public class DatabaseTestBase : AcDatabaseTestBase { [TestInitialize] public void Setup() diff --git a/AyCode.Database.Tests.Internal/Users/UserDal.cs b/AyCode.Database.Tests.Internal/Users/UserDal.cs index b7dd553..fe5703e 100644 --- a/AyCode.Database.Tests.Internal/Users/UserDal.cs +++ b/AyCode.Database.Tests.Internal/Users/UserDal.cs @@ -3,9 +3,6 @@ using AyCode.Database.DataLayers.Users; namespace AyCode.Database.Tests.Internal.Users; -/// -/// DON'T USE!!! -/// public sealed class UserDal : AcUserDalBase { diff --git a/AyCode.Database.Tests.Internal/Users/UserDalTests.cs b/AyCode.Database.Tests.Internal/Users/UserDalTests.cs index 52cae2d..f13b690 100644 --- a/AyCode.Database.Tests.Internal/Users/UserDalTests.cs +++ b/AyCode.Database.Tests.Internal/Users/UserDalTests.cs @@ -3,14 +3,22 @@ using AyCode.Database.Tests.Users; namespace AyCode.Database.Tests.Internal.Users; -/// -/// DON'T USE!!! -/// [TestClass] public sealed class UserDalTests : AcUserDalTestBase { - [TestMethod] + [DataTestMethod] [DataRow("test@tiam.hu")] public override void AcBase_GetUserByEmail_ReturnsUser_WhenUserExists(string email) => base.AcBase_GetUserByEmail_ReturnsUser_WhenUserExists(email); + + [DataTestMethod] + [DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")] + public override void AcBase_GetUserById_ReturnsUser_WhenUserExists(string userIdString) + => base.AcBase_GetUserById_ReturnsUser_WhenUserExists(userIdString); + + [DataTestMethod] + [DataRow(["e31044d7-1771-4a32-8dd9-6f9853ed53c6", "0a831191-70a3-4504-9ec4-c5902affaba7", "8eed080c-d2ce-4cc3-bcfe-2268c220bba7", "addUser_test9432@tiam.hu"])] + public override async Task AcBase_AddUserTest(string[] userIdProfileIdAddressIdEmailStrings) + => await base.AcBase_AddUserTest(userIdProfileIdAddressIdEmailStrings); + } \ No newline at end of file diff --git a/AyCode.Database.Tests.Internal/Users/UserDbContext.cs b/AyCode.Database.Tests.Internal/Users/UserDbContext.cs index 9d4a4fe..8b11c4d 100644 --- a/AyCode.Database.Tests.Internal/Users/UserDbContext.cs +++ b/AyCode.Database.Tests.Internal/Users/UserDbContext.cs @@ -4,9 +4,6 @@ using Microsoft.EntityFrameworkCore; namespace AyCode.Database.Tests.Internal.Users; -/// -/// DON'T USE!!! -/// public sealed class UserDbContext : AcUserDbContextBase { public UserDbContext() //: this(string.Empty) @@ -33,10 +30,6 @@ public sealed class UserDbContext : AcUserDbContextBasetrue - - - - - - - PreserveNewest - - - diff --git a/AyCode.Database.Tests/Users/AcUserDalTestBase.cs b/AyCode.Database.Tests/Users/AcUserDalTestBase.cs index 67a6a19..60c2449 100644 --- a/AyCode.Database.Tests/Users/AcUserDalTestBase.cs +++ b/AyCode.Database.Tests/Users/AcUserDalTestBase.cs @@ -24,7 +24,11 @@ namespace AyCode.Database.Tests.Users where TUserToServiceProvider : class, IAcUserToServiceProviderBase where TEmailMessage : class, IAcEmailMessageBase { - protected TUser AcBase_GetUserById_ReturnsUser_WhenUserExists(string userIdString) + [DataTestMethod] + public virtual void AcBase_GetUserById_ReturnsUser_WhenUserExists(string userIdString) => AcBase_GetUserById(userIdString); + + // ReSharper disable once MemberCanBePrivate.Global + protected TUser AcBase_GetUserById(string userIdString) { var userId = Guid.Parse(userIdString); var user = Dal.GetUserById(userId, false); @@ -38,8 +42,7 @@ namespace AyCode.Database.Tests.Users return user; } - [TestMethod] - [DataRow("2test@tiam.hu")] + [DataTestMethod] public virtual void AcBase_GetUserByEmail_ReturnsUser_WhenUserExists(string email) => AcBase_GetUserByEmail(email); // ReSharper disable once MemberCanBePrivate.Global @@ -77,5 +80,51 @@ namespace AyCode.Database.Tests.Users return user; } + + [DataTestMethod] + public virtual async Task AcBase_AddUserTest(string[] userIdProfileIdAddressIdEmailStrings) + { + var userId = Guid.Parse(userIdProfileIdAddressIdEmailStrings[0]); + var profileId = Guid.Parse(userIdProfileIdAddressIdEmailStrings[1]); + var addressId = Guid.Parse(userIdProfileIdAddressIdEmailStrings[2]); + var email = userIdProfileIdAddressIdEmailStrings[3]; + + var fromAddress = "Budapest, Liszt Ferenc tér"; + var toAddress = "1211 Budapest, Kossuth Lajos utca 145"; + //var userProductToCarId = Guid.Parse("97179a87-d99f-4f12-b7b2-75e21aaec6ab"); + + await Dal.RemoveUserAsync(userId); //kitöröljük a szemetet, ha korábbról bentmaradt - J. + + var user = Activator.CreateInstance(typeof(TUser), userId, email, "235664", "dsfglfjg45r34903t3kggvq") as TUser; + Assert.IsNotNull(user); + + user.ProfileId = profileId; + + var profile = Activator.CreateInstance(); + profile.Id = profileId;; + profile.Name = "Add user test name"; + + var address = Activator.CreateInstance(); + address.Id = addressId; + address.Latitude = 5362.2341652256; + address.Longitude = 5362.2341333317; + address.AddressText = "1214 Kossuth Lajos utca 124."; + + user.Profile = profile; + user.Profile.AddressId = addressId; + user.Profile.Address = address; + + Assert.IsTrue(await Dal.AddUserAsync(user)); + user = Dal.GetUserById(userId, false); + + Assert.IsNotNull(user); + Assert.IsNotNull(user.Profile); + Assert.IsNotNull(user.Profile.Address); + + Assert.IsTrue(await Dal.RemoveUserAsync(userId)); //mielőbb kitöröljük, h ne maradjon szemét a db-ben - J. + + user = Dal.GetUserById(userId, false); + Assert.IsNull(user); //a korábbi törlés miatt NULL kell legyen - J. + } } } diff --git a/AyCode.Database/AyCode.Database.csproj b/AyCode.Database/AyCode.Database.csproj index d6334d3..5830b25 100644 --- a/AyCode.Database/AyCode.Database.csproj +++ b/AyCode.Database/AyCode.Database.csproj @@ -9,6 +9,8 @@ + + diff --git a/AyCode.Database/DbContexts/AcDbContextBase.cs b/AyCode.Database/DbContexts/AcDbContextBase.cs index 4b29bfd..6e15786 100644 --- a/AyCode.Database/DbContexts/AcDbContextBase.cs +++ b/AyCode.Database/DbContexts/AcDbContextBase.cs @@ -1,16 +1,21 @@ -using Microsoft.EntityFrameworkCore; +using AyCode.Core.Consts; +using Microsoft.EntityFrameworkCore; using AyCode.Interfaces.TimeStampInfo; +using Microsoft.Extensions.Configuration; + namespace AyCode.Database.DbContexts; public abstract class AcDbContextBase : DbContext { + private readonly string? _connString; public string Name { get; set; } public Guid SessionId { get; protected set; } = Guid.NewGuid(); protected AcDbContextBase() { + _connString = AcEnv.AppConfiguration.GetConnectionString("DeveloperDbConnection"); //DbInterception.Add(new UtcDateTimeDbCommandInterceptor()); } @@ -22,11 +27,15 @@ public abstract class AcDbContextBase : DbContext protected AcDbContextBase(DbContextOptions options, string name) : base(options) { Name = name; + + _connString = AcEnv.AppConfiguration.GetConnectionString("DeveloperDbConnection"); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseLazyLoadingProxies(true); + + optionsBuilder.UseSqlServer(_connString); } public override int SaveChanges() diff --git a/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs b/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs index a2aab1d..500ef8d 100644 --- a/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs +++ b/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs @@ -1,4 +1,6 @@ -using AyCode.Interfaces.Addresses; +using AyCode.Database.ModelBuilders.Profiles; +using AyCode.Database.ModelBuilders.Users; +using AyCode.Interfaces.Addresses; using AyCode.Interfaces.Messages; using AyCode.Interfaces.Profiles; using AyCode.Interfaces.ServiceProviders; @@ -11,7 +13,7 @@ namespace AyCode.Database.DbContexts.Users where TUser : class, IAcUser where TProfile : class, IAcProfile where TUserToken : class, IAcUserTokenBase - where TServiceProvider : class, IAcServiceProviderBase + where TServiceProvider : class, IAcServiceProvider//IAcServiceProviderBase where TUserToServiceProvider : class, IAcUserToServiceProviderBase where TProfileAddress : class, IAcAddress where TEmailMessage : class, IAcEmailMessageBase @@ -32,5 +34,22 @@ namespace AyCode.Database.DbContexts.Users protected AcUserDbContextBase(DbContextOptions options, string name) : base(options, name) { } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + base.OnConfiguring(optionsBuilder); + + optionsBuilder.UseLazyLoadingProxies(true); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + new AcUserEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + new AcProfileEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + + //new EmailMessageEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity()); + } } } diff --git a/AyCode.Database/ModelBuilders/Profiles/AcProfileEntityTypeConfigurations.cs b/AyCode.Database/ModelBuilders/Profiles/AcProfileEntityTypeConfigurations.cs index 8c164b5..d05cbe4 100644 --- a/AyCode.Database/ModelBuilders/Profiles/AcProfileEntityTypeConfigurations.cs +++ b/AyCode.Database/ModelBuilders/Profiles/AcProfileEntityTypeConfigurations.cs @@ -7,16 +7,12 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace AyCode.Database.ModelBuilders.Profiles; -public abstract class AcProfileEntityTypeConfigurations +public class AcProfileEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration + where TProfile : class, IAcProfile + where TProfileAddress : class, IAcAddress { - public abstract class AcProfileEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration - where TProfile : class, IAcProfile - where TProfileAddress : class, IAcAddress + public virtual void Configure(EntityTypeBuilder modelBuilder) { - public virtual void Configure(EntityTypeBuilder modelBuilder) - { - modelBuilder.BuildEntityToAddressRelation(); - } + modelBuilder.BuildEntityToAddressRelation(); } - -} \ No newline at end of file +} diff --git a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs index b640d76..3534638 100644 --- a/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs +++ b/AyCode.Database/ModelBuilders/Users/AcUserEntityTypeConfigurations.cs @@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace AyCode.Database.ModelBuilders.Users; -public abstract class AcUserEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration +public class AcUserEntityTypeDefaultConfiguration : IAcEntityTypeConfiguration where TUser : class, IAcUser where TProfile : class, IAcProfile where TServiceProvider : class, IAcServiceProvider diff --git a/AyCode.Interfaces/Addresses/IAcAddressRelation.cs b/AyCode.Interfaces/Addresses/IAcAddressRelation.cs index 3b8195d..9844e61 100644 --- a/AyCode.Interfaces/Addresses/IAcAddressRelation.cs +++ b/AyCode.Interfaces/Addresses/IAcAddressRelation.cs @@ -4,7 +4,7 @@ using System.Net; namespace AyCode.Interfaces.Addresses; -public interface IAcAddressRelation : IAcAddressForeignKey where TAddress : class, IAcAddress +public interface IAcAddressRelation : IAcAddressForeignKey where TAddress : IAcAddress { public TAddress Address { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/Profiles/IAcProfile.cs b/AyCode.Interfaces/Profiles/IAcProfile.cs index b712f87..08d4185 100644 --- a/AyCode.Interfaces/Profiles/IAcProfile.cs +++ b/AyCode.Interfaces/Profiles/IAcProfile.cs @@ -4,7 +4,7 @@ using AyCode.Interfaces.Profiles.Dtos; namespace AyCode.Interfaces.Profiles; -public interface IAcProfile : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation where TAddress : class, IAcAddress +public interface IAcProfile : IAcProfileDtoBase, ITimeStampInfo, IAcAddressRelation where TAddress : IAcAddress { public string? GetFullName(string lang = "ENG"); } \ No newline at end of file diff --git a/AyCode.Interfaces/Profiles/IAcProfileRelation.cs b/AyCode.Interfaces/Profiles/IAcProfileRelation.cs index 50712d1..1836772 100644 --- a/AyCode.Interfaces/Profiles/IAcProfileRelation.cs +++ b/AyCode.Interfaces/Profiles/IAcProfileRelation.cs @@ -2,7 +2,7 @@ namespace AyCode.Interfaces.Profiles; -public interface IAcProfileRelation : IAcProfileForeignKey where TProfile : class, IAcProfileDtoBase +public interface IAcProfileRelation : IAcProfileForeignKey where TProfile : IAcProfileDtoBase { public TProfile Profile { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs b/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs index f40f520..dac1563 100644 --- a/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs +++ b/AyCode.Interfaces/ServiceProviders/IAcServiceProvider.cs @@ -3,6 +3,6 @@ namespace AyCode.Interfaces.ServiceProviders; public interface IAcServiceProvider : IAcServiceProviderBase, IAcUsersRelation - where TUser : class, IAcUserBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + 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 index 16ebc57..fae705c 100644 --- a/AyCode.Interfaces/ServiceProviders/IAcServiceProviderRelation.cs +++ b/AyCode.Interfaces/ServiceProviders/IAcServiceProviderRelation.cs @@ -3,8 +3,8 @@ namespace AyCode.Interfaces.ServiceProviders; public interface IAcServiceProviderRelation - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TServiceProvider : IAcServiceProviderBase + where TUserToServiceProvider : IAcUserToServiceProviderBase { public List ServiceProviders { get; set; } public List UserToServiceProviders { get; set; } diff --git a/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs b/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs index 18f02ef..4a31e54 100644 --- a/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs +++ b/AyCode.Interfaces/Users/Dtos/IAcUserDtoBase.cs @@ -5,9 +5,9 @@ using AyCode.Interfaces.Addresses; namespace AyCode.Interfaces.Users.Dtos; public interface IAcUserDtoBase : IAcUserDtoMinBase, IAcServiceProviderRelation - where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase - where TProfileAddress : class, IAcAddress + where TProfile : IAcProfile + where TServiceProvider : IAcServiceProviderBase + where TUserToServiceProvider : IAcUserToServiceProviderBase + 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 d083d21..5004652 100644 --- a/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs +++ b/AyCode.Interfaces/Users/Dtos/IAcUserDtoDetailBase.cs @@ -5,9 +5,9 @@ using AyCode.Interfaces.ServiceProviders; namespace AyCode.Interfaces.Users.Dtos; public interface IAcUserDtoDetailBase : IAcUserBase, IAcUserDtoBase - where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase - where TProfileAddress : class, IAcAddress + where TProfile : IAcProfile + where TServiceProvider : IAcServiceProviderBase + where TUserToServiceProvider : IAcUserToServiceProviderBase + where TProfileAddress : IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/Dtos/IAcUserDtoMinBase.cs b/AyCode.Interfaces/Users/Dtos/IAcUserDtoMinBase.cs index 06047bc..548dce6 100644 --- a/AyCode.Interfaces/Users/Dtos/IAcUserDtoMinBase.cs +++ b/AyCode.Interfaces/Users/Dtos/IAcUserDtoMinBase.cs @@ -5,7 +5,7 @@ using AyCode.Interfaces.Profiles.Dtos; namespace AyCode.Interfaces.Users.Dtos; -public interface IAcUserDtoMinBase : IEntityGuid, IAcProfileRelation where TProfile : class, IAcProfileDtoBase +public interface IAcUserDtoMinBase : IEntityGuid, IAcProfileRelation where TProfile : IAcProfileDtoBase { public Guid AffiliateId { get; set; } } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUser.cs b/AyCode.Interfaces/Users/IAcUser.cs index 04f01a4..eaaab49 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 - where TProfile : class, IAcProfile - where TServiceProvider : class, IAcServiceProviderBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase - where TProfileAddress : class, IAcAddress +public interface IAcUser : IAcUserDtoDetailBase, IAcProfileForeignKey + where TProfile : IAcProfile + where TServiceProvider : IAcServiceProviderBase + where TUserToServiceProvider : IAcUserToServiceProviderBase + where TProfileAddress : IAcAddress { } \ No newline at end of file diff --git a/AyCode.Interfaces/Users/IAcUsersRelation.cs b/AyCode.Interfaces/Users/IAcUsersRelation.cs index 54272bd..3b1e6d9 100644 --- a/AyCode.Interfaces/Users/IAcUsersRelation.cs +++ b/AyCode.Interfaces/Users/IAcUsersRelation.cs @@ -1,8 +1,8 @@ namespace AyCode.Interfaces.Users; public interface IAcUsersRelation - where TUser : class, IAcUserBase - where TUserToServiceProvider : class, IAcUserToServiceProviderBase + where TUser : IAcUserBase + where TUserToServiceProvider : IAcUserToServiceProviderBase { public List Users { get; set; } public List UserToServiceProviders { get; set; }