From a49c5229b8eb8d3a75bbe3552b16ae62aa5e6483 Mon Sep 17 00:00:00 2001 From: "jozsef.b@aycode.com" <9Rj@D}fVwBaN> Date: Mon, 5 Feb 2024 19:03:00 +0100 Subject: [PATCH] TransferDestination, Address fixes --- TIAM.Database.Test/AdminDalTest.cs | 62 +++++++++++++++++ TIAM.Database/DataLayers/Admins/AdminDal.cs | 68 +++++++++---------- .../Transfers/ITransferDestinationDbSet.cs | 2 + .../Transfers/TransferDbSetExtensions.cs | 19 +++--- .../Transfers/TransferDestination.cs | 2 +- .../SysAdmins/TransferDestinations.razor.cs | 6 +- .../Controllers/TransferDataAPIController.cs | 46 ++++++------- .../TransferDestinationWizardModel.cs | 16 +++-- 8 files changed, 144 insertions(+), 77 deletions(-) diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index a77cbbf2..995e37fd 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -6,9 +6,11 @@ using TIAM.Core.Enums; using TIAM.Database.DataLayers.Admins; using TIAM.Database.DbContexts.Admins; using TIAM.Database.DbSets.Emails; +using TIAM.Entities.Addresses; using TIAM.Entities.Drivers; using TIAM.Entities.Emails; using TIAM.Entities.Products; +using TIAM.Entities.TransferDestinations; using TIAM.Entities.Users; using TIAM.Models.Dtos.Users; using TIAM.Entities.Transfers; @@ -324,6 +326,7 @@ namespace TIAM.Database.Test //Assert.IsNotNull(user.UserProductMappings[0].Product, "Product is null"); } + [DataTestMethod] [DataRow(["8f38f8e3-a92c-4979-88b1-dc812a82245f", "814b5495-c2e9-4f1d-a73f-37cd5d353078", "71392CFD-FB9C-45C1-9540-7BE3782CF26A"])] public async Task TransferCrudTest(string[] transferIdProductIdUserProductIdStrings) @@ -384,6 +387,65 @@ namespace TIAM.Database.Test Assert.IsNull(transfer); //a korábbi törlés miatt NULL kell legyen - J. } + [DataTestMethod] + [DataRow(["069089cd-66d4-4f0d-851b-2eea14fa62a4", "be709d9b-87dc-4c94-bf9e-d6254db3fa3e"])] + public async Task TransferDestinationCrudTest(string[] transferDestIdaddressIdStrings) + { + var transferDestId = Guid.Parse(transferDestIdaddressIdStrings[0]); + var addressId = Guid.Parse(transferDestIdaddressIdStrings[1]); + + var name = "Liszt Ferenc repülőtér"; + var address = "Budapest, Liszt Ferenc tér"; + var modifiedAddress = "modified; " + address; + + await Dal.RemoveTransferDestinationAsync(transferDestId, true); //kitöröljük a szemetet, ha korábbról bentmaradt - J. + + var transferDest = new TransferDestination + { + Id = transferDestId, + AddressId = addressId, + Name = name, + Description = name + "description", + Price = 15000, + PriceType = PriceType.Fix, + Address = new Address + { + Id = addressId, + AddressText = address, + IsValid = false, + IsHelper = false, + Latitude = new Random().NextDouble() + 42d, + Longitude = new Random().NextDouble() + 19d + } + }; + + Assert.IsTrue(await Dal.AddTransferDestinationAsync(transferDest)); + Assert.IsNotNull(transferDest); + + transferDest = Dal.GetTransferDestinationById(transferDestId); + + Assert.IsNotNull(transferDest); + Assert.IsNotNull(transferDest.Address); + + transferDest.Price = 20000; + transferDest.Address.AddressText = modifiedAddress; + + Assert.IsTrue(await Dal.UpdateTransferDestinationAsync(transferDest)); + + transferDest = Dal.GetTransferDestinationById(transferDestId); + + Assert.IsNotNull(transferDest); + Assert.IsNotNull(transferDest.Address); + + Assert.IsTrue(transferDest.Price == 20000); + Assert.IsTrue(transferDest.Address.AddressText == modifiedAddress); + Assert.IsTrue(transferDest.Id == transferDestId, "transferDest.Id != transferDestId"); + + Assert.IsTrue(await Dal.RemoveTransferDestinationAsync(transferDestId, true)); //mielőbb kitöröljük, h ne maradjon szemét a db-ben - J. + + transferDest = Dal.GetTransferDestinationById(transferDestId); + Assert.IsNull(transferDest); //a korábbi törlés miatt NULL kell legyen - J. + } #endregion Transfer #region EmailMessage diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index fbcca259..b3be44d9 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -1,8 +1,6 @@ -using System.Security.Cryptography.X509Certificates; -using AyCode.Database.DbSets.Users; +using AyCode.Database.DbSets.Users; using AyCode.Models.Enums; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; using TIAM.Core; //using TIAM.Database.DataLayers.ServiceProviders; using TIAM.Database.DbContexts.Admins; @@ -37,17 +35,17 @@ namespace TIAM.Database.DataLayers.Admins public Transfer? GetTransferById(Guid transferId, bool autoInclude = false) => Session(ctx => ctx.GetTransferById(transferId, autoInclude)); public string? GetTransferJsonById(Guid transferId, bool autoInclude = false) => Session(ctx => ctx.GetTransferById(transferId, autoInclude)?.ToJson()); - public Task AddTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.AddTransfer(transfer) && ctx.SaveChanges() > 0); - public Task UpdateTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.UpdateTransfer(transfer) && ctx.SaveChanges() > 0); - public Task RemoveTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.RemoveTransfer(transfer) && ctx.SaveChanges() > 0); - public Task RemoveTransferAsync(Guid transferId) => TransactionAsync(ctx => ctx.RemoveTransfer(transferId) && ctx.SaveChanges() > 0); + public Task AddTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.AddTransfer(transfer)); + public Task UpdateTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.UpdateTransfer(transfer)); + public Task RemoveTransferAsync(Transfer transfer) => TransactionAsync(ctx => ctx.RemoveTransfer(transfer)); + public Task RemoveTransferAsync(Guid transferId) => TransactionAsync(ctx => ctx.RemoveTransfer(transferId)); #endregion Transfer #region TransferDestination - public Task AddTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.AddTransferDestination(transferDestination) && ctx.SaveChanges() > 0); - public Task UpdateTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.UpdateTransferDestination(transferDestination) && ctx.SaveChanges() > 0); - public Task RemoveTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.RemoveTransferDestination(transferDestination) && ctx.SaveChanges() > 0); - public Task RemoveTransferDestinationAsync(Guid transferDestinationId) => TransactionAsync(ctx => ctx.RemoveTransferDestination(transferDestinationId) && ctx.SaveChanges() > 0); + public Task AddTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.AddTransferDestination(transferDestination)); + public Task UpdateTransferDestinationAsync(TransferDestination transferDestination) => TransactionAsync(ctx => ctx.UpdateTransferDestination(transferDestination)); + public Task RemoveTransferDestinationAsync(TransferDestination transferDestination, bool removeAddress = false) => TransactionAsync(ctx => ctx.RemoveTransferDestination(transferDestination, removeAddress)); + public Task RemoveTransferDestinationAsync(Guid transferDestinationId, bool removeAddress = false) => TransactionAsync(ctx => ctx.RemoveTransferDestination(transferDestinationId, removeAddress)); #endregion TransferDestination @@ -66,10 +64,10 @@ namespace TIAM.Database.DataLayers.Admins public string GetProductsJson(bool includeUsers = true) => Session(ctx => ctx.ProductsWithUserRelations(includeUsers).ToJson()); public List GetProductsByServiceProviderId(Guid serviceProviderId, bool includeUsers = true) => Session(ctx => ctx.GetProductsByServiceProviderId(serviceProviderId, includeUsers).ToList()); public string GetProductsJsonByServiceProviderId(Guid serviceProviderId, bool includeUsers = true) => Session(ctx => ctx.GetProductsByServiceProviderId(serviceProviderId, includeUsers).ToJson()); - public Task AddProduct(Product product) => TransactionAsync(ctx => ctx.AddProduct(product) && ctx.SaveChanges() > 0); + public Task AddProduct(Product product) => TransactionAsync(ctx => ctx.AddProduct(product)); - public Task UpdateProduct(Product product) => TransactionAsync(ctx => ctx.UpdateProduct(product) && ctx.SaveChanges() > 0); - public Task RemoveProduct(Product product) => TransactionAsync(ctx => ctx.RemoveProduct(product) && ctx.SaveChanges() > 0); + public Task UpdateProduct(Product product) => TransactionAsync(ctx => ctx.UpdateProduct(product)); + public Task RemoveProduct(Product product) => TransactionAsync(ctx => ctx.RemoveProduct(product)); public UserProductMapping? GetUserProductMappingById(Guid userProductMappingId, bool autoInclude = true) => Session(ctx => ctx.GetUserProductMappingById(userProductMappingId, autoInclude)); public Task GetUserProductMappingByIdAsync(Guid userProductMappingId, bool autoInclude = true) => SessionAsync(ctx => ctx.GetUserProductMappingById(userProductMappingId, autoInclude)); @@ -88,7 +86,7 @@ namespace TIAM.Database.DataLayers.Admins #region UserProductMapping public Task AddUserProductMappingAsync(UserProductMapping userProductMapping) - => TransactionAsync(ctx => ctx.AddUserProductMapping(userProductMapping) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.AddUserProductMapping(userProductMapping)); public async Task AddUserProductMappingAsync(Guid userProductMappingId, Guid userId, Guid productId, int permissions = 1, UserProductJsonDetailModel? userProductToCars = null) { @@ -105,7 +103,7 @@ namespace TIAM.Database.DataLayers.Admins } public Task UpdateUserProductMappingAsync(UserProductMapping userProductMapping) - => TransactionAsync(ctx => ctx.UpdateUserProductMapping(userProductMapping) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.UpdateUserProductMapping(userProductMapping)); public async Task UpdateUserProductMappingAsync(Guid userProductMappingId, int permissions = 1, UserProductJsonDetailModel? userProductToCars = null) { @@ -122,10 +120,10 @@ namespace TIAM.Database.DataLayers.Admins } public Task RemoveUserProductMappingAsync(Guid userProductMappingId) - => TransactionAsync(ctx => ctx.RemoveUserProductMapping(userProductMappingId) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.RemoveUserProductMapping(userProductMappingId)); public Task RemoveUserProductMappingAsync(Guid userId, Guid productId) - => TransactionAsync(ctx => ctx.RemoveUserProductMapping(userId, productId) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.RemoveUserProductMapping(userId, productId)); #endregion UserProductMapping @@ -139,13 +137,13 @@ namespace TIAM.Database.DataLayers.Admins public Task AddEmailMessageAsync(EmailMessage emailMessage) - => TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.AddEmailMessage(emailMessage)); public Task UpdateEmailMessageAsync(EmailMessage emailMessage) - => TransactionAsync(ctx => ctx.UpdateEmailMessage(emailMessage) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.UpdateEmailMessage(emailMessage)); public Task RemoveEmailMessageAsync(Guid emailMessageId) - => TransactionAsync(ctx => ctx.RemoveEmailMessage(emailMessageId) && ctx.SaveChanges() > 0); + => TransactionAsync(ctx => ctx.RemoveEmailMessage(emailMessageId)); #endregion EmailMessage @@ -327,26 +325,26 @@ namespace TIAM.Database.DataLayers.Admins { List result = new List(); - var UserProductMappings = Context.UserProductMappings.Where(x => x.ProductId == contextId).ToListAsync(); + var userProductMappings = Context.UserProductMappings.Where(x => x.ProductId == contextId).ToList(); - if (UserProductMappings.Result != null) + //if (userProductMappings.Result != null) { - foreach (var item in UserProductMappings.Result) + foreach (var item in userProductMappings) { - var mappingRow = Context.PermissionContextMappings.Where(x => x.SubjectId == item.Id).ToListAsync(); - if (mappingRow.Result == null) + var mappingRows = Context.PermissionContextMappings.Where(x => x.SubjectId == item.Id).ToList(); + if (mappingRows.Count == 0) { //user has no permission but is assigned... must be banned } - else if (mappingRow.Result.Count > 1) + else if (mappingRows.Count > 1) { //user has been assigned more than onece to same context } else { - foreach (var mapping in mappingRow.Result) + foreach (var mapping in mappingRows) { result.Add(new AssignedPermissionModel(item.ProductId, item.Id, mapping.SubjectType, item.UserId.ToString(), mapping.Permissions)); } @@ -355,26 +353,26 @@ namespace TIAM.Database.DataLayers.Admins } } - var AssingedGroups = Context.PermissionGroups.Where(x => x.OwnerId == contextId).ToListAsync(); + var assingedGroups = Context.PermissionGroups.Where(x => x.OwnerId == contextId).ToList(); - if (AssingedGroups.Result != null) + //if (assingedGroups.Result != null) { - foreach (var group in AssingedGroups.Result) + foreach (var group in assingedGroups) { - var mappingRow = Context.PermissionContextMappings.Where(x => x.SubjectId == group.Id).ToListAsync(); - if (mappingRow.Result == null) + var mappingRows = Context.PermissionContextMappings.Where(x => x.SubjectId == group.Id).ToList(); + if (mappingRows.Count == 0) { //group has no permission but is assigned... } - else if (mappingRow.Result.Count > 1) + else if (mappingRows.Count > 1) { //group has been assigned more than onece to same context } else { - foreach (var mapping in mappingRow.Result) + foreach (var mapping in mappingRows) { result.Add(new AssignedPermissionModel(group.OwnerId, group.Id, mapping.SubjectType, group.GroupName, mapping.Permissions)); } diff --git a/TIAM.Database/DbSets/Transfers/ITransferDestinationDbSet.cs b/TIAM.Database/DbSets/Transfers/ITransferDestinationDbSet.cs index bb4c1f12..819974c9 100644 --- a/TIAM.Database/DbSets/Transfers/ITransferDestinationDbSet.cs +++ b/TIAM.Database/DbSets/Transfers/ITransferDestinationDbSet.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore; +using TIAM.Entities.Addresses; using TIAM.Entities.Products; using TIAM.Entities.TransferDestinations; @@ -7,4 +8,5 @@ namespace TIAM.Database.DbSets.Transfers; public interface ITransferDestinationDbSet { public DbSet TransferDestinations { get; set; } + public DbSet
Addresses { get; set; } } \ No newline at end of file diff --git a/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs b/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs index 0ea8bea2..da7e6f65 100644 --- a/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs +++ b/TIAM.Database/DbSets/Transfers/TransferDbSetExtensions.cs @@ -1,7 +1,4 @@ using Microsoft.EntityFrameworkCore; -using TIAM.Database.DbSets.Products; -using TIAM.Database.DbSets.Users; -using TIAM.Entities.Products; using TIAM.Entities.TransferDestinations; using TIAM.Entities.Transfers; @@ -47,13 +44,17 @@ public static class TransferDbSetExtensions public static bool UpdateTransferDestination(this ITransferDestinationDbSet ctx, TransferDestination transferDestination) => ctx.TransferDestinations.Update(transferDestination).State == EntityState.Modified; - public static bool RemoveTransferDestination(this ITransferDestinationDbSet ctx, TransferDestination transferDestination) - => ctx.TransferDestinations.Remove(transferDestination).State == EntityState.Deleted; - - public static bool RemoveTransferDestination(this ITransferDestinationDbSet ctx, Guid transferDestinationId) + public static bool RemoveTransferDestination(this ITransferDestinationDbSet ctx, TransferDestination transferDestination, bool removeAddress) { - var transfer = ctx.GetTransferDestinationById(transferDestinationId); - return transfer == null || ctx.RemoveTransferDestination(transferDestinationId); + if (removeAddress) ctx.Addresses.Remove(transferDestination.Address); + + return ctx.TransferDestinations.Remove(transferDestination).State == EntityState.Deleted; + } + + public static bool RemoveTransferDestination(this ITransferDestinationDbSet ctx, Guid transferDestinationId, bool removeAddress) + { + var transferDestination = ctx.GetTransferDestinationById(transferDestinationId); + return transferDestination == null || ctx.RemoveTransferDestination(transferDestination, removeAddress); } #endregion TransferDestination diff --git a/TIAM.Entities/Transfers/TransferDestination.cs b/TIAM.Entities/Transfers/TransferDestination.cs index ba52c01c..e408f8aa 100644 --- a/TIAM.Entities/Transfers/TransferDestination.cs +++ b/TIAM.Entities/Transfers/TransferDestination.cs @@ -27,7 +27,7 @@ namespace TIAM.Entities.TransferDestinations public PriceType PriceType { get; set; } //TEMPORARY!!! - public string AddressString { get; set; } + public string? AddressString { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs index c57a8ff1..20be98bf 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs +++ b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs @@ -105,7 +105,7 @@ namespace TIAMSharedUI.Pages.User.SysAdmins //add new orderData to orderData array //await NwindDataService.InsertEmployeeAsync((EditableEmployee)e.EditModel); - await transferDataService.CreateTransferDestination(TransferDestinationWizardModel.SaveToTransferDestination(myModel)); + await transferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(myModel)); //await transferDataService.CreateTransferDestination(new TransferDestination /*{ Id = Guid.NewGuid(), @@ -142,7 +142,7 @@ namespace TIAMSharedUI.Pages.User.SysAdmins transferToModify.Price = myModel.Price; transferToModify.PriceType = myModel.PriceType; - await transferDataService.UpdateTransferDestination(TransferDestinationWizardModel.SaveToTransferDestination(transferToModify)); + await transferDataService.UpdateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferToModify)); } } @@ -177,7 +177,7 @@ namespace TIAMSharedUI.Pages.User.SysAdmins { //add new transferwizardmodel to transferData array TransferDataFromDb = ((TransferDestinationWizardModel[])TransferDataFromDb).Append( - new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.PriceType)).ToArray(); + new TransferDestinationWizardModel(item.Id, item.Name, item.Description, item.AddressString, item.Price, item.PriceType, item.Address)).ToArray(); logToBrowserConsole.LogToBC($"TransferDataFromDb: {item.Name}"); } diff --git a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index a0170cea..7bb2d0a9 100644 --- a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs +++ b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs @@ -74,16 +74,16 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpPost] [Route(APIUrls.CreateTransferDestinationRouteName)] - public async Task CreateTransferDestination([FromBody] JsonElement SerializedTransferDestinationModel) + public async Task CreateTransferDestination([FromBody] JsonElement serializedTransferDestinationModel) { Console.WriteLine("CreateTransferDestination called!"); - if (string.IsNullOrEmpty(SerializedTransferDestinationModel.GetRawText())) + if (string.IsNullOrEmpty(serializedTransferDestinationModel.GetRawText())) { return BadRequest("SerializedTramsferDestinationWizardModel is required"); } else { - TransferDestination? transferDestination = JObject.Parse(SerializedTransferDestinationModel.GetRawText()).ToObject(); + TransferDestination? transferDestination = JObject.Parse(serializedTransferDestinationModel.GetRawText()).ToObject(); if (transferDestination != null) { @@ -125,10 +125,10 @@ namespace TIAMWebApp.Server.Controllers [AllowAnonymous] [HttpPost] [Route(APIUrls.UpdateTransferDestinationRouteName)] - public async Task UpdateTransferDestination([FromBody]JsonElement SerializedTransferDestinationModel) + public async Task UpdateTransferDestination([FromBody]JsonElement serializedTransferDestination) { Console.WriteLine("UpdateTransferDestination called!"); - if (string.IsNullOrEmpty(SerializedTransferDestinationModel.GetRawText())) + if (string.IsNullOrEmpty(serializedTransferDestination.GetRawText())) { Console.WriteLine("Bad request!"); return BadRequest("SerializedTramsferDestinationWizardModel is required"); @@ -136,8 +136,8 @@ namespace TIAMWebApp.Server.Controllers else { Console.WriteLine("Serialized model not empty!"); - TransferDestination? transferDestination = JObject.Parse(SerializedTransferDestinationModel.GetRawText()).ToObject(); - Console.WriteLine($"TransferDestination to be updated: {SerializedTransferDestinationModel.GetRawText()}"); + TransferDestination? transferDestination = JObject.Parse(serializedTransferDestination.GetRawText()).ToObject(); + Console.WriteLine($"TransferDestination to be updated: {serializedTransferDestination.GetRawText()}"); Console.WriteLine($"TransferDestination to be updated: {transferDestination.AddressString}"); @@ -162,27 +162,27 @@ namespace TIAMWebApp.Server.Controllers Console.WriteLine($"TransferDestination to be updated new address: {transferDestination.AddressString}"); Console.WriteLine($"TransferDestination to be updated new description: {transferDestination.Description}"); - var dbTransferDestinationJson = _adminDal.GetTransferDestinationJsonById(transferDestination.Id); - Console.WriteLine($"TransferDestination JSON to be updated: {dbTransferDestinationJson}"); + //var dbTransferDestinationJson = _adminDal.GetTransferDestinationJsonById(transferDestination.Id); + //Console.WriteLine($"TransferDestination JSON to be updated: {dbTransferDestinationJson}"); - var dbTransferDestination = JObject.Parse(dbTransferDestinationJson).ToObject(); - if (dbTransferDestination.Id != Guid.Empty) - { + //var dbTransferDestination = JObject.Parse(dbTransferDestinationJson).ToObject(); - dbTransferDestination.AddressId = transferDestination.AddressId; - dbTransferDestination.Price = transferDestination.Price; - dbTransferDestination.PriceType = transferDestination.PriceType; - dbTransferDestination.Name = transferDestination.Name; - dbTransferDestination.Description = transferDestination.Description; - dbTransferDestination.AddressString = transferDestination.AddressString; - dbTransferDestination.Address = transferDestination.Address; + //var dbTransferDestination = _adminDal.GetTransferDestinationById(transferDestination.Id, true); + //if (dbTransferDestination.Id != Guid.Empty) + //{ + // dbTransferDestination.AddressId = transferDestination.AddressId; + // dbTransferDestination.Price = transferDestination.Price; + // dbTransferDestination.PriceType = transferDestination.PriceType; + // dbTransferDestination.Name = transferDestination.Name; + // dbTransferDestination.Description = transferDestination.Description; + // dbTransferDestination.AddressString = transferDestination.AddressString; + // dbTransferDestination.Address = transferDestination.Address; - } - + //} //await _transferDestinationDal.Context.TransferDestinations.AddAsync(transferDestination); - await _adminDal.UpdateTransferDestinationAsync(dbTransferDestination); - return Ok(dbTransferDestination); + await _adminDal.UpdateTransferDestinationAsync(transferDestination); + return Ok(transferDestination); } } else diff --git a/TIAMWebApp/Shared/Models/ClientSide/UI/WizardModels/TransferDestinationWizardModel.cs b/TIAMWebApp/Shared/Models/ClientSide/UI/WizardModels/TransferDestinationWizardModel.cs index 7e91fe6e..a224af8e 100644 --- a/TIAMWebApp/Shared/Models/ClientSide/UI/WizardModels/TransferDestinationWizardModel.cs +++ b/TIAMWebApp/Shared/Models/ClientSide/UI/WizardModels/TransferDestinationWizardModel.cs @@ -45,6 +45,8 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels public PriceType PriceType { get; set; } + public Address Address { get; set; } + //[DataType("Latitude")] //[Display(Name = "Destination latitude")] //public double Latitude { get; set; } @@ -55,23 +57,24 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels public TransferDestinationWizardModel() { } - public TransferDestinationWizardModel(string name, string description, string address, double price, PriceType priceType) :this(Guid.NewGuid(), name, description, address, price, priceType) + public TransferDestinationWizardModel(string name, string description, string addressString, double price, PriceType priceType, Address address) :this(Guid.NewGuid(), name, description, addressString, price, priceType, address) { } - public TransferDestinationWizardModel(Guid id, string name, string description, string address, double price, PriceType priceType) + public TransferDestinationWizardModel(Guid id, string name, string description, string addressString, double price, PriceType priceType, Address address) { Id = id.ToString(); Name = name; Description = description; - AddressString = address; + AddressString = addressString; Price = price; PriceType = priceType; + Address = address; } - public static TransferDestination SaveToTransferDestination(TransferDestinationWizardModel model) - => SaveToTransferDestination(model, new TransferDestination()); + public static TransferDestination CopyToTransferDestination(TransferDestinationWizardModel model) + => CopyToTransferDestination(model, new TransferDestination()); - public static TransferDestination SaveToTransferDestination(TransferDestinationWizardModel model, TransferDestination destination) + public static TransferDestination CopyToTransferDestination(TransferDestinationWizardModel model, TransferDestination destination) { destination.Id = Guid.Parse(model.Id); destination.Name = model.Name; @@ -79,6 +82,7 @@ namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels destination.AddressString = model.AddressString; destination.Price = model.Price; destination.PriceType = model.PriceType; + destination.Address = model.Address; if (destination.Address == null) {