From 1c666c7ac7754042c1530c7b193599b35e17f9c2 Mon Sep 17 00:00:00 2001 From: Loretta Date: Fri, 12 Sep 2025 13:34:45 +0200 Subject: [PATCH] improvement, fixes, etc... --- FruitBank.Common/Entities/Shipping.cs | 4 +- FruitBank.Common/Entities/ShippingDocument.cs | 8 +++- FruitBank.Common/Entities/ShippingItem.cs | 6 +-- .../IFruitBankDataControllerCommon.cs | 4 ++ FruitBank.Common/Interfaces/IShipping.cs | 3 ++ .../Interfaces/IShippingDocument.cs | 5 ++- FruitBank.Common/Interfaces/IShippingItem.cs | 6 +-- FruitBank.Common/SignalRs/SignalRTags.cs | 12 +++++- .../FruitBankClientTests.cs | 38 +++++++++++++------ .../SignalRs/FruitBankSignalRClient.cs | 12 +++++- 10 files changed, 73 insertions(+), 25 deletions(-) diff --git a/FruitBank.Common/Entities/Shipping.cs b/FruitBank.Common/Entities/Shipping.cs index 6edf5f5..c14d351 100644 --- a/FruitBank.Common/Entities/Shipping.cs +++ b/FruitBank.Common/Entities/Shipping.cs @@ -13,8 +13,8 @@ public class Shipping : MgEntityBase, IShipping public string LicencePlate { get; set; } public bool IsAllMeasured { get; set; } - //[Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingItem.sh))] - //public IEnumerable Shippings { get; set; } + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.ShippingId))] + public List? ShippingDocuments { get; set; } [SkipValuesOnUpdate] diff --git a/FruitBank.Common/Entities/ShippingDocument.cs b/FruitBank.Common/Entities/ShippingDocument.cs index 33b7d1e..a0c02e4 100644 --- a/FruitBank.Common/Entities/ShippingDocument.cs +++ b/FruitBank.Common/Entities/ShippingDocument.cs @@ -10,10 +10,16 @@ public class ShippingDocument : MgEntityBase, IShippingDocument { public int PartnerId { get; set; } public int ShippingId { get; set; } - public int ShippingItemId { get; set; } public DateTime ShippingDate { get; set; } public string Country { get; set; } + [Association(ThisKey = nameof(PartnerId), OtherKey = nameof(Partner.Id))] + public Partner? Partner { get; set; } + + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingItem.ShippingDocumentId))] + public List? ShippingItems { get; set; } + + [SkipValuesOnUpdate] public DateTime Created { get; set; } public DateTime Modified { get; set; } diff --git a/FruitBank.Common/Entities/ShippingItem.cs b/FruitBank.Common/Entities/ShippingItem.cs index 569ea3d..5d48ae1 100644 --- a/FruitBank.Common/Entities/ShippingItem.cs +++ b/FruitBank.Common/Entities/ShippingItem.cs @@ -11,7 +11,7 @@ namespace FruitBank.Common.Entities; [System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingItemDbTableName)] public class ShippingItem : MgEntityBase, IShippingItem { - public int ProductId { get; set; } + public int? ProductId { get; set; } //[Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(Shipping.Id))] //public IEnumerable Shippings { get; set; } @@ -19,8 +19,8 @@ public class ShippingItem : MgEntityBase, IShippingItem public string Name { get; set; } public double NetWeight { get; set; } public double GrossWeight { get; set; } - public double MeasuredNetWeight { get; set; } - public double MeasuredGrossWeight { get; set; } + public double? MeasuredNetWeight { get; set; } + public double? MeasuredGrossWeight { get; set; } public bool IsMeasured { get; set; } [SkipValuesOnUpdate] diff --git a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs index 2598521..b176655 100644 --- a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs +++ b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs @@ -18,17 +18,21 @@ public interface IFruitBankDataControllerCommon #region Shipping public Task?> GetShippings(); + Task?> GetNotMeasuredShippings(); public Task GetShippingById(int id); + public Task UpdateShipping(Shipping shipping); #endregion Shipping #region ShippingItem public Task?> GetShippingItems(); public Task GetShippingItemById(int id); + public Task UpdateShippingItem(ShippingItem shippingItem); #endregion ShippingItem #region ShippingDocument public Task?> GetShippingDocuments(); public Task GetShippingDocumentById(int id); + public Task UpdateShippingDocument(ShippingDocument shippingDocument); #endregion ShippingDocument #region Customer diff --git a/FruitBank.Common/Interfaces/IShipping.cs b/FruitBank.Common/Interfaces/IShipping.cs index a3e5338..dd64664 100644 --- a/FruitBank.Common/Interfaces/IShipping.cs +++ b/FruitBank.Common/Interfaces/IShipping.cs @@ -1,5 +1,6 @@ using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; +using FruitBank.Common.Entities; namespace FruitBank.Common.Interfaces; @@ -9,4 +10,6 @@ public interface IShipping : IEntityInt, ITimeStampInfo DateTime ShippingDate { get; set; } string LicencePlate { get; set; } bool IsAllMeasured { get; set; } + + public List? ShippingDocuments { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IShippingDocument.cs b/FruitBank.Common/Interfaces/IShippingDocument.cs index b74944f..eb34695 100644 --- a/FruitBank.Common/Interfaces/IShippingDocument.cs +++ b/FruitBank.Common/Interfaces/IShippingDocument.cs @@ -1,5 +1,6 @@ using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; +using FruitBank.Common.Entities; namespace FruitBank.Common.Interfaces; @@ -7,7 +8,9 @@ public interface IShippingDocument: IEntityInt, ITimeStampInfo { public int PartnerId { get; set; } public int ShippingId { get; set; } - public int ShippingItemId { get; set; } public DateTime ShippingDate { get; set; } public string Country { get; set; } + + public Partner? Partner { get; set; } + public List? ShippingItems { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IShippingItem.cs b/FruitBank.Common/Interfaces/IShippingItem.cs index 658f065..cff36e0 100644 --- a/FruitBank.Common/Interfaces/IShippingItem.cs +++ b/FruitBank.Common/Interfaces/IShippingItem.cs @@ -6,13 +6,13 @@ namespace FruitBank.Common.Interfaces; public interface IShippingItem : IEntityInt, ITimeStampInfo { int ShippingDocumentId { get; set; } - int ProductId { get; set; } + int? ProductId { get; set; } string Name { get; set; } double NetWeight { get; set; } double GrossWeight { get; set; } - double MeasuredNetWeight { get; set; } - double MeasuredGrossWeight { get; set; } + double? MeasuredNetWeight { get; set; } + double? MeasuredGrossWeight { get; set; } bool IsMeasured { get; set; } } \ No newline at end of file diff --git a/FruitBank.Common/SignalRs/SignalRTags.cs b/FruitBank.Common/SignalRs/SignalRTags.cs index 0b4c421..d18a5f2 100644 --- a/FruitBank.Common/SignalRs/SignalRTags.cs +++ b/FruitBank.Common/SignalRs/SignalRTags.cs @@ -11,16 +11,24 @@ public class SignalRTags : AcSignalRTags public const int GetPartners = 20; public const int GetPartnerById = 21; - public const int UpdatePartner = 25; + public const int AddPartner = 25; + public const int UpdatePartner = 26; public const int GetShippings = 40; - public const int GetShippingById = 41; + public const int GetNotMeasuredShippings = 41; + public const int GetShippingById = 42; + public const int AddShipping = 45; + public const int UpdateShipping = 46; public const int GetShippingItems = 50; public const int GetShippingItemById = 51; + public const int AddShippingItem = 55; + public const int UpdateShippingItem = 56; public const int GetShippingDocuments = 60; public const int GetShippingDocumentById = 61; + public const int AddShippingDocument = 65; + public const int UpdateShippingDocument = 66; public const int GetMeasuringUsers = 70; public const int GetCustomerDtoById = 71; diff --git a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs index 26bce30..5a0e1e2 100644 --- a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs @@ -1,11 +1,9 @@ using AyCode.Core.Enums; -using AyCode.Core.Extensions; using AyCode.Core.Loggers; using AyCode.Utils.Extensions; using FruitBank.Common.Entities; using FruitBank.Common.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; -using Mango.Nop.Core.Dtos; namespace FruitBankHybrid.Shared.Tests { @@ -76,16 +74,30 @@ namespace FruitBankHybrid.Shared.Tests var shippings = await _signalRClient.GetShippings(); Assert.IsNotNull(shippings); - Assert.IsTrue(shippings.Any()); + Assert.IsTrue(shippings.Count != 0); } [TestMethod] - public async Task GetShippingByIdTest() + public async Task GetNotMeasuredShippingsTest() { - var shipping = await _signalRClient.GetShippingById(1); + var shippings = await _signalRClient.GetNotMeasuredShippings(); + + Assert.IsNotNull(shippings); + Assert.IsTrue(shippings.All(s => !s.IsAllMeasured)); + } + + [TestMethod] + [DataRow(1)] + public async Task GetShippingByIdTest(int shippingId) + { + var shipping = await _signalRClient.GetShippingById(shippingId); Assert.IsNotNull(shipping); - Assert.IsTrue(shipping.Id == 1); + Assert.IsNotNull(shipping.ShippingDocuments); + + Assert.IsTrue(shipping.Id == shippingId); + Assert.IsTrue(shipping.ShippingDocuments.All(s => s.ShippingId == shippingId)); + Assert.IsTrue(shipping.ShippingDocuments.All(sd => sd.ShippingItems != null && sd.ShippingItems.Any(si => si.ShippingDocumentId == sd.Id))); } #endregion Shipping @@ -102,12 +114,13 @@ namespace FruitBankHybrid.Shared.Tests } [TestMethod] - public async Task GetShippingItemByIdTest() + [DataRow(1)] + public async Task GetShippingItemByIdTest(int shippingItemeId) { - var shippingItem = await _signalRClient.GetShippingItemById(1); + var shippingItem = await _signalRClient.GetShippingItemById(shippingItemeId); Assert.IsNotNull(shippingItem); - Assert.IsTrue(shippingItem.Id == 1); + Assert.IsTrue(shippingItem.Id == shippingItemeId); } #endregion ShippingItem @@ -124,12 +137,13 @@ namespace FruitBankHybrid.Shared.Tests } [TestMethod] - public async Task GetShippingDocumentByIdTest() + [DataRow(2)] + public async Task GetShippingDocumentByIdTest(int shippingDocumentId) { - var shippingDocument = await _signalRClient.GetShippingDocumentById(1); + var shippingDocument = await _signalRClient.GetShippingDocumentById(shippingDocumentId); Assert.IsNotNull(shippingDocument); - Assert.IsTrue(shippingDocument.Id == 1); + Assert.IsTrue(shippingDocument.Id == shippingDocumentId); } #endregion ShippingDocument diff --git a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs index 34190eb..5a6ed19 100644 --- a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs +++ b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs @@ -42,7 +42,7 @@ namespace FruitBankHybrid.Shared.Services.SignalRs => GetByIdAsync(SignalRTags.GetPartnerById, id); public Task UpdatePartner(Partner partner) - => PostDataAsync(SignalRTags.UpdatePartner, partner); + => PostDataAsync(SignalRTags.UpdatePartner, partner); #endregion Partner @@ -51,9 +51,15 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task?> GetShippings() => GetAllAsync>(SignalRTags.GetShippings); + public Task?> GetNotMeasuredShippings() + => GetAllAsync>(SignalRTags.GetNotMeasuredShippings); + public Task GetShippingById(int id) => GetByIdAsync(SignalRTags.GetShippingById, id); + public Task UpdateShipping(Shipping shipping) + => PostDataAsync(SignalRTags.UpdateShipping, shipping); + #endregion Shipping #region ShippingItem @@ -64,6 +70,8 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task GetShippingItemById(int id) => GetByIdAsync(SignalRTags.GetShippingItemById, id); + public Task UpdateShippingItem(ShippingItem shippingItem) + => PostDataAsync(SignalRTags.UpdateShippingItem, shippingItem); #endregion ShippingItem #region ShippingDocument @@ -74,6 +82,8 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task GetShippingDocumentById(int id) => GetByIdAsync(SignalRTags.GetShippingDocumentById, id); + public Task UpdateShippingDocument(ShippingDocument shippingDocument) + => PostDataAsync(SignalRTags.UpdateShippingDocument, shippingDocument); #endregion ShippingDocument #region Customer