diff --git a/Mango.Core/Loggers/ConsoleLogWriter.cs b/Mango.Core/Loggers/ConsoleLogWriter.cs new file mode 100644 index 0000000..403f007 --- /dev/null +++ b/Mango.Core/Loggers/ConsoleLogWriter.cs @@ -0,0 +1,17 @@ +using AyCode.Core.Enums; +using AyCode.Core.Loggers; + +namespace Mango.Core.Loggers; + +public class ConsoleLogWriter : AcConsoleLogWriter +{ + public ConsoleLogWriter() : this(null) + { } + + public ConsoleLogWriter(string? categoryName = null) : base(categoryName) + { } + + public ConsoleLogWriter(AppType appType, LogLevel logLevel, string? callerClassName = null) : base(appType, logLevel, callerClassName) + { + } +} \ No newline at end of file diff --git a/Mango.Core/Loggers/Logger.cs b/Mango.Core/Loggers/Logger.cs new file mode 100644 index 0000000..fa79afe --- /dev/null +++ b/Mango.Core/Loggers/Logger.cs @@ -0,0 +1,19 @@ +using AyCode.Core.Enums; +using AyCode.Core.Loggers; + +namespace Mango.Core.Loggers; + +public class Logger : AcLoggerBase +{ + public Logger() : this(null) + { } + + public Logger(string? categoryName) : base(categoryName) + { } + + public Logger(string? categoryName, params IAcLogWriterBase[] logWriters) : base(categoryName, logWriters) + { } + + public Logger(AppType appType, LogLevel logLevel, string? categoryName, params IAcLogWriterBase[] logWriters) : base(appType, logLevel, categoryName, logWriters) + { } +} \ No newline at end of file diff --git a/Mango.Core/Mango.Core.csproj b/Mango.Core/Mango.Core.csproj index 86f45d1..36401d1 100644 --- a/Mango.Core/Mango.Core.csproj +++ b/Mango.Core/Mango.Core.csproj @@ -6,6 +6,10 @@ enable + + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll diff --git a/Mango.Database.Test/DatabaseTestBase.cs b/Mango.Database.Test/DatabaseTestBase.cs index e27ad26..231d56c 100644 --- a/Mango.Database.Test/DatabaseTestBase.cs +++ b/Mango.Database.Test/DatabaseTestBase.cs @@ -1,6 +1,7 @@ using AyCode.Database.DbContexts; using AyCode.Database.Tests; using Mango.Database.DbContexts; +using Mango.Database.DbContexts.Users; namespace Mango.Database.Test { @@ -10,12 +11,15 @@ namespace Mango.Database.Test [TestInitialize] public void Setup() { - + } [TestCleanup] public void TearDown() { } + + [DataTestMethod] + public override void DatabaseExistsTest() => base.DatabaseExistsTest(); } } \ No newline at end of file diff --git a/Mango.Database.Test/Mango.Database.Test.csproj b/Mango.Database.Test/Mango.Database.Test.csproj index 480e5dc..87657e1 100644 --- a/Mango.Database.Test/Mango.Database.Test.csproj +++ b/Mango.Database.Test/Mango.Database.Test.csproj @@ -24,15 +24,15 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - - - - + + + + diff --git a/Mango.Database.Test/UserDalTests.cs b/Mango.Database.Test/UserDalTests.cs index 2b4bb38..1355e81 100644 --- a/Mango.Database.Test/UserDalTests.cs +++ b/Mango.Database.Test/UserDalTests.cs @@ -4,13 +4,32 @@ using Mango.Database.DataLayers.Users; using Mango.Database.DbContexts.Users; using Mango.Entities.Addresses; using Mango.Entities.Companies; +using Mango.Entities.Messages.Emails; using Mango.Entities.Profiles; using Mango.Entities.Users; -using Microsoft.ApplicationInsights; namespace Mango.Database.Test; [TestClass] -public class UserDalTests : AcUserDalTestBase +public class UserDalTests : AcUserDalTestBase { + [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("540271F6-C604-4C16-8160-D5A7CAFEDF00")] + public override void AcBase_GetUserModelDtoDetailById_ReturnsUser_WhenUserExists(string userIdString) + => base.AcBase_GetUserModelDtoDetailById_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/Mango.Database.Test/appsettings.json b/Mango.Database.Test/appsettings.json index 48d14a2..c9c3222 100644 --- a/Mango.Database.Test/appsettings.json +++ b/Mango.Database.Test/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "DeveloperDbConnection": "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=False;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true" + "DeveloperDbConnection": + "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { @@ -17,6 +18,24 @@ "SendGrid": { //"Key": "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" "Key": "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" - } + }, + "AyCode": { + "ProjectId": "684f34d1-163a-4077-918f-a9d9df5ce789", + "Logger": { + "AppType": "Server", + "LogLevel": "Detail", + "LogWriters": [ + { + "LogLevel": "Detail", + "LogWriterType": "Mango.Core.Loggers.ConsoleLogWriter, Mango.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + { + "LogLevel": "Detail", + "LogWriterType": "Mango.Database.DbLogItemWriter, Mango.Database, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + } + ] + } + } } + diff --git a/Mango.Database/DataLayers/IDalBase.cs b/Mango.Database/DataLayers/IDalBase.cs index 9670c5e..2cac8af 100644 --- a/Mango.Database/DataLayers/IDalBase.cs +++ b/Mango.Database/DataLayers/IDalBase.cs @@ -1,4 +1,5 @@ using AyCode.Database.DataLayers; +using AyCode.Database.DbContexts; using Mango.Database.DbContexts; namespace Mango.Database.DataLayers; @@ -6,5 +7,5 @@ namespace Mango.Database.DataLayers; public interface IDalBase : IAcDalBase { } -public interface IDalBase : IAcDalBase, IAcDalBase where TDbContext : DbContextBase +public interface IDalBase : IAcDalBase, IAcDalBase where TDbContext : AcDbContextBase { } \ No newline at end of file diff --git a/Mango.Database/DataLayers/Users/UserDal.cs b/Mango.Database/DataLayers/Users/UserDal.cs index 9c8251c..05ce845 100644 --- a/Mango.Database/DataLayers/Users/UserDal.cs +++ b/Mango.Database/DataLayers/Users/UserDal.cs @@ -2,13 +2,14 @@ using Mango.Database.DbContexts.Users; using Mango.Entities.Addresses; using Mango.Entities.Companies; +using Mango.Entities.Messages.Emails; using Mango.Entities.Profiles; using Mango.Entities.Users; using Microsoft.EntityFrameworkCore; namespace Mango.Database.DataLayers.Users { - public class UserDal : AcUserDalBase, IDalBase + public class UserDal : AcUserDalBase, IDalBase { public UserDal() : base() { diff --git a/Mango.Database/DbContexts/DbContextBase.cs b/Mango.Database/DbContexts/DbContextBase.cs index 14d9e45..db73d2d 100644 --- a/Mango.Database/DbContexts/DbContextBase.cs +++ b/Mango.Database/DbContexts/DbContextBase.cs @@ -27,7 +27,7 @@ public class DbContextBase : AcDbContextBase //optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DeveloperDbConnection")); //var connString = string.Empty;//"Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"; - var connString = "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"; - optionsBuilder.UseSqlServer(connString); + //var connString = "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true"; + //optionsBuilder.UseSqlServer(connString); } } \ No newline at end of file diff --git a/Mango.Database/DbContexts/Users/IUserDbContext.cs b/Mango.Database/DbContexts/Users/IUserDbContext.cs index 5cc9a5e..5f14215 100644 --- a/Mango.Database/DbContexts/Users/IUserDbContext.cs +++ b/Mango.Database/DbContexts/Users/IUserDbContext.cs @@ -4,10 +4,11 @@ using Mango.Database.DbSets.Emails; using Mango.Database.DbSets.Users; using Mango.Entities.Addresses; using Mango.Entities.Companies; +using Mango.Entities.Messages.Emails; using Mango.Entities.Profiles; using Mango.Entities.Users; namespace Mango.Database.DbContexts.Users; -public interface IUserDbContext : IAcUserDbContextBase, IUserDbSet, IAddressDbSet, IEmailMessageDbSet +public interface IUserDbContext : IAcUserDbContextBase, IUserDbSet, IAddressDbSet, IEmailMessageDbSet { } \ No newline at end of file diff --git a/Mango.Database/DbContexts/Users/UserDbContext.cs b/Mango.Database/DbContexts/Users/UserDbContext.cs index 7f8af21..666c8e7 100644 --- a/Mango.Database/DbContexts/Users/UserDbContext.cs +++ b/Mango.Database/DbContexts/Users/UserDbContext.cs @@ -1,4 +1,6 @@ -using Mango.Entities.Addresses; +using AyCode.Database.DbContexts.Users; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; using Mango.Entities.Messages.Emails; using Mango.Entities.Profiles; using Mango.Entities.Users; @@ -6,15 +8,15 @@ using Microsoft.EntityFrameworkCore; namespace Mango.Database.DbContexts.Users { - public class UserDbContext : DbContextBase, IUserDbContext + public class UserDbContext : AcUserDbContextBase, IUserDbContext { - public DbSet Users { get; set; } - public DbSet UserTokens { get; set; } + //public DbSet Users { get; set; } + //public DbSet UserTokens { get; set; } - public DbSet Profiles { get; set; } - public DbSet
Addresses { get; set; } + //public DbSet Profiles { get; set; } + //public DbSet
Addresses { get; set; } - public DbSet EmailMessages { get; set; } + //public DbSet EmailMessages { get; set; } public UserDbContext() //: this(string.Empty) { diff --git a/Mango.Database/DbLogWriter.cs b/Mango.Database/DbLogWriter.cs new file mode 100644 index 0000000..8266533 --- /dev/null +++ b/Mango.Database/DbLogWriter.cs @@ -0,0 +1,26 @@ +using AyCode.Core.Enums; +using AyCode.Core.Loggers; +using AyCode.Database; +using AyCode.Database.DbContexts.Loggers; +using AyCode.Entities.LogItems; +using AyCode.Entities.Server.LogItems; + +namespace Mango.Database; + +public class LoggerDbContextBase : AcLoggerDbContextBase +{ + +} + +public class DbLogItemWriter : AcDbLogItemWriter +{ + public DbLogItemWriter() : this(null) + { } + + public DbLogItemWriter(string? categoryName = null) : base(categoryName) + { } + + public DbLogItemWriter(AppType appType, LogLevel logLevel, string? categoryName = null) : base(appType, logLevel, categoryName) + { + } +} \ No newline at end of file diff --git a/Mango.Database/DbSets/Users/IUserDbSet.cs b/Mango.Database/DbSets/Users/IUserDbSet.cs index a47daf6..9142d82 100644 --- a/Mango.Database/DbSets/Users/IUserDbSet.cs +++ b/Mango.Database/DbSets/Users/IUserDbSet.cs @@ -6,6 +6,6 @@ using Mango.Entities.Users; namespace Mango.Database.DbSets.Users; -public interface IUserDbSet : IAcUserDbSet +public interface IUserDbSet : IAcUserDbSetBase { } \ No newline at end of file diff --git a/Mango.Database/Mango.Database.csproj b/Mango.Database/Mango.Database.csproj index 3a367bd..b04579c 100644 --- a/Mango.Database/Mango.Database.csproj +++ b/Mango.Database/Mango.Database.csproj @@ -53,9 +53,11 @@ - - - + + + + + diff --git a/Mango.Entities/Companies/Company.cs b/Mango.Entities/Companies/Company.cs index ba6e1b6..5b26e20 100644 --- a/Mango.Entities/Companies/Company.cs +++ b/Mango.Entities/Companies/Company.cs @@ -1,12 +1,14 @@ using System.ComponentModel.DataAnnotations.Schema; using AyCode.Entities.ServiceProviders; +using Mango.Entities.Addresses; +using Mango.Entities.Profiles; using Mango.Entities.Users; using Mango.Interfaces.Companies; namespace Mango.Entities.Companies; [Table("ServiceProviders")] -public class Company : AcServiceProvider, ICompany, ICompanyBase +public class Company : AcCompany, ICompany, ICompanyBase { public Company() { diff --git a/Mango.Entities/Users/UserToCompany.cs b/Mango.Entities/Users/UserToCompany.cs index 931ef7d..056c6e5 100644 --- a/Mango.Entities/Users/UserToCompany.cs +++ b/Mango.Entities/Users/UserToCompany.cs @@ -1,10 +1,12 @@ using AyCode.Entities.Users; using Mango.Entities.Companies; using Mango.Interfaces.Users; +using System.ComponentModel.DataAnnotations.Schema; namespace Mango.Entities.Users; -public class UserToCompany : AcUserToServiceProvider, IUserToCompany +[Table("UserToServiceProvider")] +public class UserToCompany : AcUserToCompany, IUserToCompany { } \ No newline at end of file diff --git a/Mango.Interfaces/Companies/ICompany.cs b/Mango.Interfaces/Companies/ICompany.cs index 5f4417e..531adf3 100644 --- a/Mango.Interfaces/Companies/ICompany.cs +++ b/Mango.Interfaces/Companies/ICompany.cs @@ -1,11 +1,17 @@ using AyCode.Interfaces.ServiceProviders; using AyCode.Interfaces.Users; using System; +using AyCode.Interfaces.Addresses; +using AyCode.Interfaces.Profiles; +using AyCode.Interfaces.Profiles.Dtos; using Mango.Interfaces.Users; +using Mango.Interfaces.Profiles; namespace Mango.Interfaces.Companies; -public interface ICompany : IAcServiceProvider +public interface ICompany : IAcCompany where TUser : class, IUserBase where TUserToCompany : class, IUserToCompanyBase + where TProfile : class, IAcProfile + where TAddress : class, IAcAddress {} \ No newline at end of file diff --git a/Mango.Interfaces/Companies/ICompanyBase.cs b/Mango.Interfaces/Companies/ICompanyBase.cs index 8baf306..ff78a83 100644 --- a/Mango.Interfaces/Companies/ICompanyBase.cs +++ b/Mango.Interfaces/Companies/ICompanyBase.cs @@ -2,6 +2,6 @@ namespace Mango.Interfaces.Companies; -public interface ICompanyBase : IAcServiceProviderBase +public interface ICompanyBase : IAcCompanyBase { } \ No newline at end of file diff --git a/Mango.Interfaces/Users/IUser.cs b/Mango.Interfaces/Users/IUser.cs index 7280147..1684b4e 100644 --- a/Mango.Interfaces/Users/IUser.cs +++ b/Mango.Interfaces/Users/IUser.cs @@ -5,10 +5,10 @@ using Mango.Interfaces.Profiles; namespace Mango.Interfaces.Users; -public interface IUser : IAcUser, IUserDto, IUserBase - where TProfile : class, IProfile +public interface IUser : IAcUser, IUserDto, IUserBase + where TProfile : class, IProfile where TCompany : class, ICompanyBase where TUserToCompany : class, IUserToCompanyBase - where TProfileAddress : class, IAddress + where TAddress : class, IAddress { } \ No newline at end of file diff --git a/Mango.Interfaces/Users/IUserDto.cs b/Mango.Interfaces/Users/IUserDto.cs index 52c3ba0..7064489 100644 --- a/Mango.Interfaces/Users/IUserDto.cs +++ b/Mango.Interfaces/Users/IUserDto.cs @@ -1,13 +1,13 @@ -using AyCode.Interfaces.Users.Dtos; +using AyCode.Interfaces.Profiles.Dtos; +using AyCode.Interfaces.Users.Dtos; using Mango.Interfaces.Addresses; using Mango.Interfaces.Companies; using Mango.Interfaces.Profiles; namespace Mango.Interfaces.Users; -public interface IUserDto : IAcUserDtoBase - where TProfile : class, IProfile +public interface IUserDto : IAcUserDtoBase + where TProfile : class, IAcProfileDtoBase where TCompany : class, ICompanyBase where TUserToCompany : class, IUserToCompanyBase - where TProfileAddress : class, IAddress { } \ No newline at end of file diff --git a/Mango.Interfaces/Users/IUserToCompany.cs b/Mango.Interfaces/Users/IUserToCompany.cs index ee7fbd8..248f498 100644 --- a/Mango.Interfaces/Users/IUserToCompany.cs +++ b/Mango.Interfaces/Users/IUserToCompany.cs @@ -7,5 +7,5 @@ public interface IUserToCompany : IUserToCompanyBase where TCompany : class, ICompanyBase { public TUser User { get; set; } - public TCompany ServiceProvider { get; set; } + public TCompany Company { get; set; } } \ No newline at end of file diff --git a/Mango.Interfaces/Users/IUserToCompanyBase.cs b/Mango.Interfaces/Users/IUserToCompanyBase.cs index 1847dff..b6ef530 100644 --- a/Mango.Interfaces/Users/IUserToCompanyBase.cs +++ b/Mango.Interfaces/Users/IUserToCompanyBase.cs @@ -2,5 +2,5 @@ namespace Mango.Interfaces.Users; -public interface IUserToCompanyBase : IAcUserToServiceProviderBase +public interface IUserToCompanyBase : IAcUserToCompanyBase {} \ No newline at end of file diff --git a/Mango.Models/Logins/ILoggedInModel.cs b/Mango.Models/Logins/ILoggedInModel.cs new file mode 100644 index 0000000..0c10306 --- /dev/null +++ b/Mango.Models/Logins/ILoggedInModel.cs @@ -0,0 +1,10 @@ +using AyCode.Interfaces.Server.Logins; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; +using Mango.Entities.Profiles; +using Mango.Entities.Users; + +namespace Mango.Models.Logins; + +public interface ILoggedInModel : IAcLoggedInModelBase +{} \ No newline at end of file diff --git a/Mango.Models/Logins/LoggedInModel.cs b/Mango.Models/Logins/LoggedInModel.cs new file mode 100644 index 0000000..407edeb --- /dev/null +++ b/Mango.Models/Logins/LoggedInModel.cs @@ -0,0 +1,11 @@ +using AyCode.Models.Server.Logins; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; +using Mango.Entities.Profiles; +using Mango.Entities.Users; + +namespace Mango.Models.Logins; + +public class LoggedInModel : AcLoggedInModelServer, ILoggedInModel +{ +} \ No newline at end of file diff --git a/Mango.Models/Mango.Models.csproj b/Mango.Models/Mango.Models.csproj index fa71b7a..0bb8421 100644 --- a/Mango.Models/Mango.Models.csproj +++ b/Mango.Models/Mango.Models.csproj @@ -6,4 +6,41 @@ enable + + + + + + + + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll + + + diff --git a/Mango.Services.Server.Tests/LoginServices/LoginServiceServerTests.cs b/Mango.Services.Server.Tests/LoginServices/LoginServiceServerTests.cs new file mode 100644 index 0000000..fa658f3 --- /dev/null +++ b/Mango.Services.Server.Tests/LoginServices/LoginServiceServerTests.cs @@ -0,0 +1,63 @@ +using AyCode.Core.Loggers; +using AyCode.Core.Server.Loggers; +using AyCode.Services.Server.Tests.LoginServices; +using Mango.Core.Loggers; +using Mango.Database; +using Mango.Database.DataLayers.Users; +using Mango.Database.DbContexts.Users; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; +using Mango.Entities.Messages.Emails; +using Mango.Entities.Profiles; +using Mango.Entities.Users; +using Mango.Models.Logins; +using Mango.Services.Server.Logins; + +namespace Mango.Services.Server.Tests.LoginServices +{ + [TestClass] + public class LoginServiceServerTests : AcLoginServiceServerTestBase + { + private readonly Logger _logger = new(nameof(LoginServiceServerTests)); + + private const string RegisterEmail = "qwerty@xxxxx.com"; + private const string RegisterPassword = "elem'r"; + private const string RegisterUserIdString = "1f7e0591-330b-463b-81ad-d01f2e65e23e"; + + private const string LoginId = "1DED6045-1278-4B92-A10A-3EB9426E41A3"; + private const string LoginEmail = "asdfsdf@ggggg.hu"; + private const string LoginPassword = "alad'r"; + + [DataTestMethod] + [DataRow([LoginEmail, LoginPassword])] + public override void AcBase_LoginUser_ReturnsUser_WhenUserExist(string[] emailPasswordStrings) + => base.AcBase_LoginUser_ReturnsUser_WhenUserExist(emailPasswordStrings); + + [DataTestMethod] + [DataRow([RegisterUserIdString, RegisterEmail, RegisterPassword])] + public override Task AcBase_RegisterUser_ReturnsUser_WhenUserExist(string[] userIdEmailPasswordStrings) + { + //GlobalLogger.Debug("Test started0..."); + + //for (int i = 0; i < 1000; i++) + //{ + // _logger.Debug(i + ". Test started..."); + // _logger.Debug(i + ". Test started2..."); + // GlobalLogger.Debug(i + ". Test started3..."); + //} + + //GlobalLogger.Debug("Test started4..."); + //GlobalLogger.Writer().Suggest("sdfdfa", nameof(LoginServiceServerTests)); + + //Assert.IsTrue(true); + //return Task.CompletedTask; + return base.AcBase_RegisterUser_ReturnsUser_WhenUserExist(userIdEmailPasswordStrings); + } + + [DataTestMethod] + [DataRow([LoginId, LoginPassword, "asdfgh123456"])]//, "$bcrypt$v=1$salt=JwptfNI6bXd7qKOJDChlvQ==$hash=j4CEfDeibKFWFGUOzxGICyHm3/hA+71j7qoyPDUk1qY="])] + public override void AcBase_ChangePassword_ReturnUser_WhenUserLoggedInWithNewPassword(string[] userIdOriginalPasswordNewPasswordStrings) + => base.AcBase_ChangePassword_ReturnUser_WhenUserLoggedInWithNewPassword(userIdOriginalPasswordNewPasswordStrings); + + } +} \ No newline at end of file diff --git a/Mango.Services.Server.Tests/Mango.Services.Server.Tests.csproj b/Mango.Services.Server.Tests/Mango.Services.Server.Tests.csproj new file mode 100644 index 0000000..c7ba89c --- /dev/null +++ b/Mango.Services.Server.Tests/Mango.Services.Server.Tests.csproj @@ -0,0 +1,102 @@ + + + + net8.0 + enable + enable + + false + true + + + + + + + + + PreserveNewest + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Core.Tests.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Database.Tests.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Services.Server.Tests.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server.Tests\bin\Debug\net8.0\AyCode.Utils.Server.dll + + + + + + + + diff --git a/Mango.Services.Server.Tests/appsettings.json b/Mango.Services.Server.Tests/appsettings.json new file mode 100644 index 0000000..1ba32c8 --- /dev/null +++ b/Mango.Services.Server.Tests/appsettings.json @@ -0,0 +1,39 @@ +{ + "ConnectionStrings": { + "DeveloperDbConnection": "Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Trusted_Connection=false;Encrypt=false;TrustServerCertificate=True;Connect Timeout=200;User ID=Anata_Development_Team;Password=v6f_?xNfg9N1;MultipleActiveResultSets=true" + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "JWT": { + "Key": "Cee4400-rDMFkVvHPufyLDSzbfu2grgRhpepos299IhTLOXsljkcpt3yUR4RRjPQ", + "Issuer": "http://localhost:5000", + "Audience": "http://localhost:5000" + }, + "SendGrid": { + //"Key": "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" + "Key": "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" + }, + + "AyCode": { + "ProjectId": "684f34d1-163a-4077-918f-a9d9df5ce789", + "Logger": { + "AppType": "Server", + "LogLevel": "Detail", + "LogWriters": [ + { + "LogLevel": "Detail", + "LogWriterType": "Mango.Core.Loggers.ConsoleLogWriter, Mango.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + }, + { + "LogLevel": "Detail", + "LogWriterType": "Mango.Database.DbLogItemWriter, Mango.Database, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + } + ] + } + } +} diff --git a/Mango.Services.Server/Logins/ILoginService.cs b/Mango.Services.Server/Logins/ILoginService.cs new file mode 100644 index 0000000..a8e7dbb --- /dev/null +++ b/Mango.Services.Server/Logins/ILoginService.cs @@ -0,0 +1,13 @@ +using AyCode.Interfaces.Server.Logins; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; +using Mango.Entities.Profiles; +using Mango.Entities.Users; +using Mango.Models.Logins; + +namespace Mango.Services.Server.Logins; + +public interface ILoginService : IAcLoginServiceServer +{ + +} \ No newline at end of file diff --git a/Mango.Services.Server/Logins/LoginService.cs b/Mango.Services.Server/Logins/LoginService.cs new file mode 100644 index 0000000..72022ee --- /dev/null +++ b/Mango.Services.Server/Logins/LoginService.cs @@ -0,0 +1,32 @@ +using AyCode.Core.Consts; +using AyCode.Services.Server.Logins; +using Mango.Database.DataLayers.Users; +using Mango.Database.DbContexts.Users; +using Mango.Entities.Addresses; +using Mango.Entities.Companies; +using Mango.Entities.Messages.Emails; +using Mango.Entities.Profiles; +using Mango.Entities.Users; +using Mango.Models.Logins; +using Microsoft.Extensions.Configuration; + +namespace Mango.Services.Server.Logins; + +public class LoginService(UserDal userDal, IConfiguration configuration) : AcLoginServiceServer(userDal, configuration), ILoginService + +{ + public override LoggedInModel Login(string? email, string? password) + { + return base.Login(email, password); + } + + public override bool Logout() + { + return base.Logout(); + } + + public override Task RegistrationAsync(string email, string password, string? phoneNumber = null, Guid? referralId = null) + { + return base.RegistrationAsync(email, password, phoneNumber, referralId); + } +} \ No newline at end of file diff --git a/Mango.Services.Server/Mango.Services.Server.csproj b/Mango.Services.Server/Mango.Services.Server.csproj new file mode 100644 index 0000000..98f680a --- /dev/null +++ b/Mango.Services.Server/Mango.Services.Server.csproj @@ -0,0 +1,68 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Database.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.Server.dll + + + ..\..\..\..\Aycode\Source\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll + + + + diff --git a/Mango.Services/Mango.Services.csproj b/Mango.Services/Mango.Services.csproj new file mode 100644 index 0000000..fa71b7a --- /dev/null +++ b/Mango.Services/Mango.Services.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/MissNationBlazor.sln b/MissNationBlazor.sln index bebdc28..7842407 100644 --- a/MissNationBlazor.sln +++ b/MissNationBlazor.sln @@ -13,23 +13,29 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MissNationBlazorWASM.Shared EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MissNationSharedUI", "MissNationSharedUI\MissNationSharedUI.csproj", "{B7790887-D399-4AA6-B3F4-2C332D83C637}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Core", "Mango.Core\Mango.Core.csproj", "{69E5377B-5938-4C08-AB7F-424EB353578A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Core", "Mango.Core\Mango.Core.csproj", "{69E5377B-5938-4C08-AB7F-424EB353578A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Database", "Mango.Database\Mango.Database.csproj", "{7C58DF80-C636-4693-8AC2-6D92B503DCA5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Database", "Mango.Database\Mango.Database.csproj", "{7C58DF80-C636-4693-8AC2-6D92B503DCA5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Entities", "Mango.Entities\Mango.Entities.csproj", "{17FE11C8-0821-4357-9BE0-6D96E948BECB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Entities", "Mango.Entities\Mango.Entities.csproj", "{17FE11C8-0821-4357-9BE0-6D96E948BECB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Entities.Server", "Mango.Entities.Server\Mango.Entities.Server.csproj", "{51FFD293-3C1A-43D6-A272-2850AFC3F1D6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Entities.Server", "Mango.Entities.Server\Mango.Entities.Server.csproj", "{51FFD293-3C1A-43D6-A272-2850AFC3F1D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Interfaces", "Mango.Interfaces\Mango.Interfaces.csproj", "{B9CAB99F-AF7D-4377-ACD1-97C5A0D703EA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Interfaces", "Mango.Interfaces\Mango.Interfaces.csproj", "{B9CAB99F-AF7D-4377-ACD1-97C5A0D703EA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Interfaces.Server", "Mango.Interfaces.Server\Mango.Interfaces.Server.csproj", "{E966ABA3-C927-4BC0-96A2-9CB9BA60DE6D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Interfaces.Server", "Mango.Interfaces.Server\Mango.Interfaces.Server.csproj", "{E966ABA3-C927-4BC0-96A2-9CB9BA60DE6D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Models", "Mango.Models\Mango.Models.csproj", "{AC74712A-880D-4633-86A9-F02AA4A62E90}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Models", "Mango.Models\Mango.Models.csproj", "{AC74712A-880D-4633-86A9-F02AA4A62E90}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Database.Test", "Mango.Database.Test\Mango.Database.Test.csproj", "{F12EB241-1360-4CC7-9078-EDD487F4A9FC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Database.Test", "Mango.Database.Test\Mango.Database.Test.csproj", "{F12EB241-1360-4CC7-9078-EDD487F4A9FC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Core.Server", "Mango.Core.Server\Mango.Core.Server.csproj", "{90AE435C-D257-4839-8AC5-F8D012A4F92C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mango.Core.Server", "Mango.Core.Server\Mango.Core.Server.csproj", "{90AE435C-D257-4839-8AC5-F8D012A4F92C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Services", "Mango.Services\Mango.Services.csproj", "{561010E9-A898-4EAE-98AC-23D7D988A39A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Services.Server", "Mango.Services.Server\Mango.Services.Server.csproj", "{2EB5F3A6-2A08-44AF-997E-E8F3411071D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mango.Services.Server.Tests", "Mango.Services.Server.Tests\Mango.Services.Server.Tests.csproj", "{9ADAA164-BBE3-4919-9881-98980D5C3CCE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -95,6 +101,18 @@ Global {90AE435C-D257-4839-8AC5-F8D012A4F92C}.Debug|Any CPU.Build.0 = Debug|Any CPU {90AE435C-D257-4839-8AC5-F8D012A4F92C}.Release|Any CPU.ActiveCfg = Release|Any CPU {90AE435C-D257-4839-8AC5-F8D012A4F92C}.Release|Any CPU.Build.0 = Release|Any CPU + {561010E9-A898-4EAE-98AC-23D7D988A39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {561010E9-A898-4EAE-98AC-23D7D988A39A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {561010E9-A898-4EAE-98AC-23D7D988A39A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {561010E9-A898-4EAE-98AC-23D7D988A39A}.Release|Any CPU.Build.0 = Release|Any CPU + {2EB5F3A6-2A08-44AF-997E-E8F3411071D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EB5F3A6-2A08-44AF-997E-E8F3411071D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EB5F3A6-2A08-44AF-997E-E8F3411071D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EB5F3A6-2A08-44AF-997E-E8F3411071D5}.Release|Any CPU.Build.0 = Release|Any CPU + {9ADAA164-BBE3-4919-9881-98980D5C3CCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9ADAA164-BBE3-4919-9881-98980D5C3CCE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9ADAA164-BBE3-4919-9881-98980D5C3CCE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9ADAA164-BBE3-4919-9881-98980D5C3CCE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MissNationBlazorHybrid/MissNationBlazorHybrid.csproj b/MissNationBlazorHybrid/MissNationBlazorHybrid.csproj index 372dc65..50723e1 100644 --- a/MissNationBlazorHybrid/MissNationBlazorHybrid.csproj +++ b/MissNationBlazorHybrid/MissNationBlazorHybrid.csproj @@ -58,10 +58,10 @@ - - - - + + + + diff --git a/MissNationBlazorWASM/Client/MissNationBlazorWASM.Client.csproj b/MissNationBlazorWASM/Client/MissNationBlazorWASM.Client.csproj index aaacc5c..c50eb57 100644 --- a/MissNationBlazorWASM/Client/MissNationBlazorWASM.Client.csproj +++ b/MissNationBlazorWASM/Client/MissNationBlazorWASM.Client.csproj @@ -7,9 +7,9 @@ - - - + + + diff --git a/MissNationBlazorWASM/Server/MissNationBlazorWASM.Server.csproj b/MissNationBlazorWASM/Server/MissNationBlazorWASM.Server.csproj index c476478..b5c9f47 100644 --- a/MissNationBlazorWASM/Server/MissNationBlazorWASM.Server.csproj +++ b/MissNationBlazorWASM/Server/MissNationBlazorWASM.Server.csproj @@ -7,7 +7,7 @@ - + diff --git a/MissNationBlazorWASM/Shared/MissNationBlazorWASM.Shared.csproj b/MissNationBlazorWASM/Shared/MissNationBlazorWASM.Shared.csproj index 3c56617..9a938be 100644 --- a/MissNationBlazorWASM/Shared/MissNationBlazorWASM.Shared.csproj +++ b/MissNationBlazorWASM/Shared/MissNationBlazorWASM.Shared.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable enable diff --git a/MissNationSharedUI/MissNationSharedUI.csproj b/MissNationSharedUI/MissNationSharedUI.csproj index 374ec2a..7536e84 100644 --- a/MissNationSharedUI/MissNationSharedUI.csproj +++ b/MissNationSharedUI/MissNationSharedUI.csproj @@ -12,8 +12,8 @@ - - + +