diff --git a/SqlSchemaCompare_Dev_to_Prod.scmp b/SqlSchemaCompare_Dev_to_DevRelease.scmp similarity index 98% rename from SqlSchemaCompare_Dev_to_Prod.scmp rename to SqlSchemaCompare_Dev_to_DevRelease.scmp index 05bd54a9..05443017 100644 --- a/SqlSchemaCompare_Dev_to_Prod.scmp +++ b/SqlSchemaCompare_Dev_to_DevRelease.scmp @@ -3,12 +3,12 @@ 10 - Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Persist Security Info=False;User ID=Anata_Development_Team;Pooling=False;Multiple Active Result Sets=False;Connect Timeout=60;Encrypt=True;Trust Server Certificate=True;Command Timeout=0 + Data Source=185.51.190.197;Initial Catalog=TIAM_DEV;Persist Security Info=True;User ID=Anata_Development_Team;Pooling=False;Multiple Active Result Sets=False;Connect Timeout=60;Encrypt=True;Trust Server Certificate=True;Command Timeout=0 - Data Source=185.51.190.197;Initial Catalog=TIAM_PROD;Persist Security Info=True;User ID=Anata_Development_Team;Pooling=False;Multiple Active Result Sets=False;Connect Timeout=60;Encrypt=True;Trust Server Certificate=True;Command Timeout=0 + Data Source=185.51.190.197;Initial Catalog=TIAM_DEVRELEASE;Persist Security Info=True;User ID=Anata_Development_Team;Pooling=False;Multiple Active Result Sets=False;Connect Timeout=60;Encrypt=True;Trust Server Certificate=True;Command Timeout=0 diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index 988e77bf..b1ad300e 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -13,6 +13,7 @@ using TIAM.Entities.Products; using TIAM.Entities.Users; using TIAM.Models.Dtos.Users; using TIAM.Entities.Transfers; +using TIAM.Entities.Profiles; namespace TIAM.Database.Test { @@ -32,9 +33,9 @@ namespace TIAM.Database.Test [DataRow("42968456-6EF3-4D9C-8BC4-0569A129AC05")] public void GetPermissionViewBySubjectId_ReturnsPermissionContextMapping_WhenPermissionContextMappingExists(string subjectIdString) { - var subjectId= Guid.Parse(subjectIdString); + var subjectId = Guid.Parse(subjectIdString); var permMapping = Dal.GetPermissionContextsViewBySubjectId(subjectId).ToList(); - + Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count != 0, "PermissionContextsView count: 0"); } @@ -45,7 +46,7 @@ namespace TIAM.Database.Test { var contextId = Guid.Parse(contextIdString); var permMapping = Dal.GetPermissionContextsViewByContextId(contextId).ToList(); - + Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count != 0, "PermissionContextsView count: 0"); } @@ -56,7 +57,7 @@ namespace TIAM.Database.Test { var contextId = Guid.Parse(contextIdString); var permMapping = await Dal.GetPermissionContextsViewByContextIdAsync(contextId); - + Assert.IsNotNull(permMapping, "PermissionContextsView is null"); Assert.IsTrue(permMapping.Count != 0, "PermissionContextsView count: 0"); } @@ -65,7 +66,7 @@ namespace TIAM.Database.Test { var productId = Guid.Parse(productIdString); var product = Dal.GetProductById(productId, true); - + Assert.IsNotNull(product, "Product is null"); Assert.IsNotNull(product.Profile, "Profile is null"); Assert.IsNotNull(product.Profile.Address, "Profile.Address is null"); @@ -76,7 +77,7 @@ namespace TIAM.Database.Test [DataTestMethod] public void GetProducts_ReturnProductsJson_WhenProductsExist() { - var products = JsonConvert.DeserializeObject>(Dal.GetProductsJson(false)); + var products = JsonConvert.DeserializeObject>(Dal.GetProductsJson(false)); Assert.IsNotNull(products, "Products is null"); Assert.IsTrue(products.Count > 0, "No products found"); @@ -156,8 +157,8 @@ namespace TIAM.Database.Test { var userProductCarId = Guid.Parse(userProductCarIdString); - var serializedUserProductMapping = Dal.Session(ctx - => ctx.UserProductMappings.FirstOrDefault(x + var serializedUserProductMapping = Dal.Session(ctx + => ctx.UserProductMappings.FirstOrDefault(x => x.JsonDetailModel != null && x.JsonDetailModel.Cars != null && x.JsonDetailModel.Cars.Any(c => c.UserProductCarId == userProductCarId))?.ToJson()); //var transfers = Dal.Session(x => x.GetTransfers()).ToList(); @@ -292,7 +293,7 @@ namespace TIAM.Database.Test var users = JsonConvert.DeserializeObject>(userJson); Assert.IsNotNull(users); - Assert.IsTrue(users.Count>0); + Assert.IsTrue(users.Count > 0); } #region Transfer @@ -347,7 +348,7 @@ namespace TIAM.Database.Test Assert.IsTrue(transferDestinationToProduct.TransferDestination.Id == transferDestinationId, "transferDestinationToProduct.TransferDestination.Id != transferDestinationId"); } - + [DataTestMethod] [DataRow(["8f38f8e3-a92c-4979-88b1-dc812a82245f", "814b5495-c2e9-4f1d-a73f-37cd5d353078", "71392CFD-FB9C-45C1-9540-7BE3782CF26A", "b3f51770-c821-4207-be2a-e622fed2a731"])] public async Task TransferCrudTest(string[] transferIdProductIdUserProductIdCarIdStrings) @@ -469,7 +470,7 @@ namespace TIAM.Database.Test transferDest.Price = 20000; transferDest.Address.AddressText = modifiedAddress; - + Assert.IsTrue(await Dal.UpdateTransferDestinationAsync(transferDest)); transferDest = Dal.GetTransferDestinationById(transferDestId); @@ -512,7 +513,7 @@ namespace TIAM.Database.Test var emailMessages = await Dal.GetEmailMessagesAsync(userId, userProductMappingId); Assert.IsNotNull(emailMessages); - + Assert.IsTrue(emailMessages.Count > 0); Assert.IsTrue(emailMessages.All(x => x.Recipients.Any(recipient => recipient.RecipientId == userId || recipient.RecipientId == userProductMappingId))); } @@ -530,7 +531,7 @@ namespace TIAM.Database.Test var subject = "Transfer - Budapest, Liszt Ferenc tér"; var text = "1211 Budapest, Kossuth Lajos utca 145"; - + await Dal.RemoveEmailMessageAsync(emailMessageId); //kitöröljük a szemetet, ha korábbról bentmaradt - J. var emailMessage = new EmailMessage(emailMessageId, senderId, contextId, subject, text, senderEmail); @@ -547,7 +548,7 @@ namespace TIAM.Database.Test var modifiedText = "modifiedText"; emailMessage.Text = modifiedText; - + Assert.IsTrue(await Dal.UpdateEmailMessageAsync(emailMessage)); @@ -566,6 +567,51 @@ namespace TIAM.Database.Test } #endregion EmailMessage + + #region User + [DataTestMethod] + [DataRow(["e31044d7-1771-4a32-8dd9-6f9853ed53c6", "0a831191-70a3-4504-9ec4-c5902affaba7", "8eed080c-d2ce-4cc3-bcfe-2268c220bba7", "addUser_test9432@tiam.hu"])] + public async Task 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 = new User(userId, email, "235664", "dsfglfjg45r34903t3kggvq"); + //user.ProfileId = profileId; + + var profile = new Profile(); + profile.Id = profileId;; + profile.Name = "Add user test name"; + + var address = new Address(); + address.Id = addressId; + address.Latitude = 5362.2341652256; + address.Longitude = 5362.2341333317; + address.AddressText = "1214 Kossuth Lajos utca 124."; + + user.Profile = profile; + user.Profile.Address = address; + + Assert.IsTrue(await Dal.AddUser(user)); + user = Dal.GetUserById(userId); + + 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); + Assert.IsNull(user); //a korábbi törlés miatt NULL kell legyen - J. + } + #endregion } } - \ No newline at end of file diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index ca34f611..7453cb7d 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -9,10 +9,12 @@ using TIAM.Database.DbSets.Permissions; using TIAM.Database.DbSets.Products; using TIAM.Database.DbSets.Transfers; using TIAM.Database.DbSets.Users; +using TIAM.Entities.Addresses; using TIAM.Entities.Drivers; using TIAM.Entities.Emails; using TIAM.Entities.Permissions; using TIAM.Entities.Products; +using TIAM.Entities.Profiles; using TIAM.Entities.ServiceProviders; using TIAM.Entities.Transfers; using TIAM.Entities.Users; @@ -92,6 +94,27 @@ namespace TIAM.Database.DataLayers.Admins public string? GetUserJsonById(Guid userId) => Session(ctx => ctx.GetUserById(userId)?.ToJson()); public string GetUsersJson() => Session(ctx => ctx.Users.ToJson()); + public Task AddUser(User user) => TransactionAsync(ctx => ctx.AddUser(user)); + + public Task AddUser(User user, string profileName, Address address) + { + return TransactionAsync(ctx => + { + var profile = Activator.CreateInstance(); + + profile.Id = Guid.NewGuid(); + profile.Name = profileName; + profile.Address = address; + + user.Profile= profile; + + return ctx.AddUser(user); + }); + } + + public Task RemoveUserAsync(User user) => TransactionAsync(ctx => ctx.RemoveUserAsync(user)); + public Task RemoveUserAsync(Guid userId) => TransactionAsync(ctx => ctx.RemoveUserAsync(userId)); + public Product? GetProductById(Guid contextId, bool includeUsers = true) => Session(ctx => ctx.GetProductById(contextId, includeUsers)); public string GetProductsJson(bool includeUsers = true) => Session(ctx => ctx.ProductsWithUserRelations(includeUsers).ToJson()); diff --git a/TIAMWebApp/Server/Services/TransferBackendService.cs b/TIAMWebApp/Server/Services/TransferBackendService.cs index 5b2909b3..9e6e4beb 100644 --- a/TIAMWebApp/Server/Services/TransferBackendService.cs +++ b/TIAMWebApp/Server/Services/TransferBackendService.cs @@ -9,7 +9,7 @@ namespace TIAMWebApp.Server.Services public class TransferBackendService { private readonly IConfiguration _configuration; - public AdminDal _adminDal; + private readonly AdminDal _adminDal; public TransferBackendService(IConfiguration configuration, AdminDal adminDal) { @@ -42,14 +42,14 @@ namespace TIAMWebApp.Server.Services var price = GetSeatNumberPrice(in tranferDestinationPrice, seatNumber); //TODO: ExtraPrice - J. - + //if (baseDestination.Id == fromTransferDestination.Id && ) return price; } public double GetSeatNumberPrice(in ITransfeDestinationPrices transfeDestinationPrices, in byte seatNumber) => GetSeatNumberPrice(transfeDestinationPrices.Price, transfeDestinationPrices.Price2, transfeDestinationPrices.Price3, seatNumber); - public double GetSeatNumberPrice(in double price, in double? price2, in double? price3, in byte seatNumber) + public double GetSeatNumberPrice(double price, in double? price2, in double? price3, in byte seatNumber) { return seatNumber switch { diff --git a/TourIAmProject.sln b/TourIAmProject.sln index 23f14e88..aa83a6c6 100644 --- a/TourIAmProject.sln +++ b/TourIAmProject.sln @@ -39,7 +39,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TIAM.Resources", "TIAMResou EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DD32C7C2-218C-4148-8FD6-1AB3C824A7D5}" ProjectSection(SolutionItems) = preProject - SqlSchemaCompare_Dev_to_Prod.scmp = SqlSchemaCompare_Dev_to_Prod.scmp + SqlSchemaCompare_Dev_to_DevRelease.scmp = SqlSchemaCompare_Dev_to_DevRelease.scmp EndProjectSection EndProject Global