From 17e4fcf09ee8e4d58c4910dafec030008168624e Mon Sep 17 00:00:00 2001 From: Loretta Date: Tue, 23 Sep 2025 10:41:31 +0200 Subject: [PATCH 1/2] improvements, fixes, etc... --- .../Loggers/LoggerToLoggerApiController.cs | 1 + .../Services/SignalRs/DevAdminSignalRhub.cs | 1 + FruitBank.Common/Entities/Partner.cs | 2 +- FruitBank.Common/Entities/Shipping.cs | 2 +- FruitBank.Common/Entities/ShippingDocument.cs | 6 +- FruitBank.Common/Entities/ShippingItem.cs | 35 ++++++--- .../IFruitBankDataControllerCommon.cs | 1 + .../Interfaces/IShippingDocument.cs | 1 + FruitBank.Common/Interfaces/IShippingItem.cs | 11 +++ FruitBank.Common/Loggers/ILogger.cs | 12 ---- FruitBank.Common/Loggers/Logger.cs | 32 --------- FruitBank.Common/SignalRs/SignalRTags.cs | 1 + FruitBankHybrid.Shared/Pages/Login.razor.cs | 1 + .../Pages/MeasuringIn.razor | 25 +++++-- .../Pages/MeasuringIn.razor.cs | 71 +++++++++++++------ .../Services/Loggers/LoggerClient.cs | 1 + .../SignalRs/FruitBankSignalRClient.cs | 4 ++ 17 files changed, 122 insertions(+), 85 deletions(-) delete mode 100644 FruitBank.Common/Loggers/ILogger.cs delete mode 100644 FruitBank.Common/Loggers/Logger.cs diff --git a/FruitBank.Common.Server/Services/Loggers/LoggerToLoggerApiController.cs b/FruitBank.Common.Server/Services/Loggers/LoggerToLoggerApiController.cs index ee32b1d..1b28fe1 100644 --- a/FruitBank.Common.Server/Services/Loggers/LoggerToLoggerApiController.cs +++ b/FruitBank.Common.Server/Services/Loggers/LoggerToLoggerApiController.cs @@ -1,4 +1,5 @@ using FruitBank.Common.Loggers; +using Mango.Nop.Core.Loggers; namespace FruitBank.Common.Server.Services.Loggers; diff --git a/FruitBank.Common.Server/Services/SignalRs/DevAdminSignalRhub.cs b/FruitBank.Common.Server/Services/SignalRs/DevAdminSignalRhub.cs index c19a6af..9a4c278 100644 --- a/FruitBank.Common.Server/Services/SignalRs/DevAdminSignalRhub.cs +++ b/FruitBank.Common.Server/Services/SignalRs/DevAdminSignalRhub.cs @@ -4,6 +4,7 @@ using AyCode.Services.SignalRs; using FruitBank.Common.Interfaces; using FruitBank.Common.Loggers; using FruitBank.Common.SignalRs; +using Mango.Nop.Core.Loggers; using Microsoft.Extensions.Configuration; namespace FruitBank.Common.Server.Services.SignalRs; diff --git a/FruitBank.Common/Entities/Partner.cs b/FruitBank.Common/Entities/Partner.cs index ff91337..5941e1a 100644 --- a/FruitBank.Common/Entities/Partner.cs +++ b/FruitBank.Common/Entities/Partner.cs @@ -16,7 +16,7 @@ public class Partner : MgEntityBase, IPartner public string City { get; set; } public string Street { get; set; } - [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.ShippingId))] + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.ShippingId), CanBeNull = true)] public List? ShippingDocuments { get; set; } diff --git a/FruitBank.Common/Entities/Shipping.cs b/FruitBank.Common/Entities/Shipping.cs index c14d351..2e888fd 100644 --- a/FruitBank.Common/Entities/Shipping.cs +++ b/FruitBank.Common/Entities/Shipping.cs @@ -13,7 +13,7 @@ public class Shipping : MgEntityBase, IShipping public string LicencePlate { get; set; } public bool IsAllMeasured { get; set; } - [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.ShippingId))] + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingDocument.ShippingId), CanBeNull = true)] public List? ShippingDocuments { get; set; } diff --git a/FruitBank.Common/Entities/ShippingDocument.cs b/FruitBank.Common/Entities/ShippingDocument.cs index 35664de..2e2d244 100644 --- a/FruitBank.Common/Entities/ShippingDocument.cs +++ b/FruitBank.Common/Entities/ShippingDocument.cs @@ -14,13 +14,13 @@ public class ShippingDocument : MgEntityBase, IShippingDocument public string Country { get; set; } public bool IsAllMeasured { get; set; } - [Association(ThisKey = nameof(ShippingId), OtherKey = nameof(Shipping.Id))] + [Association(ThisKey = nameof(ShippingId), OtherKey = nameof(Shipping.Id), CanBeNull = true)] public Shipping? Shipping{ get; set; } - [Association(ThisKey = nameof(PartnerId), OtherKey = nameof(Partner.Id))] + [Association(ThisKey = nameof(PartnerId), OtherKey = nameof(Partner.Id), CanBeNull = true)] public Partner? Partner { get; set; } - [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingItem.ShippingDocumentId))] + [Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingItem.ShippingDocumentId), CanBeNull = true)] public List? ShippingItems { get; set; } diff --git a/FruitBank.Common/Entities/ShippingItem.cs b/FruitBank.Common/Entities/ShippingItem.cs index 1430196..3a3dd27 100644 --- a/FruitBank.Common/Entities/ShippingItem.cs +++ b/FruitBank.Common/Entities/ShippingItem.cs @@ -6,6 +6,7 @@ using Mango.Nop.Core.Entities; using Nop.Core.Domain.Customers; using Nop.Core.Domain.Orders; using System.ComponentModel.DataAnnotations; +using Nop.Core.Domain.Catalog; using DataType = LinqToDB.DataType; namespace FruitBank.Common.Entities; @@ -20,28 +21,42 @@ public class ShippingItem : MgEntityBase, IShippingItem public int ShippingDocumentId { get; set; } public string Name { get; set; } - [Column(DataType = DataType.DecFloat)] - public double NetWeight { get; set; } - [Column(DataType = DataType.DecFloat)] - public double GrossWeight { get; set; } + public int Quantity { get; set; } + + [Column(DataType = DataType.DecFloat)] public double NetWeight { get; set; } + [Column(DataType = DataType.DecFloat)] public double GrossWeight { get; set; } + + + [Nullable] + [Column(CanBeNull = true)] + [Range(1, 100000, ErrorMessage = "The MeasuredQuantity value should be a number between 1 and 100,000.")] + public int? MeasuredQuantity { get; set; } + + [Nullable] [Column(DataType = DataType.DecFloat, CanBeNull = true)] - [Required] [Range(1, 100000, ErrorMessage = "The MeasuredNetWeight value should be a number between 1 and 100,000.")] public double? MeasuredNetWeight { get; set; } + [Nullable] [Column(DataType = DataType.DecFloat, CanBeNull = true)] - [Required] [Range(1, 100000, ErrorMessage = "The MeasuredGrossWeight value should be a number between 1 and 100,000.")] public double? MeasuredGrossWeight { get; set; } + public bool IsMeasurable { get; set; } public bool IsMeasured { get; set; } - [LinqToDB.Mapping.Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingDocument.Id))] + [LinqToDB.Mapping.Association(ThisKey = nameof(ProductId), OtherKey = nameof(Product.Id), CanBeNull = true)] + public Product? Product { get; set; } + + [LinqToDB.Mapping.Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingDocument.Id), CanBeNull = true)] public ShippingDocument? ShippingDocument { get; set; } - - [SkipValuesOnUpdate] - public DateTime Created { get; set; } + [SkipValuesOnUpdate] public DateTime Created { get; set; } public DateTime Modified { get; set; } + + public bool IsValidMeasuringValues() + { + return /*ProductId > 0 && */MeasuredQuantity > 0 && (!IsMeasurable || (MeasuredNetWeight > 0 && MeasuredGrossWeight > 0)); + } } \ No newline at end of file diff --git a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs index b176655..64bcff5 100644 --- a/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs +++ b/FruitBank.Common/Interfaces/IFruitBankDataControllerCommon.cs @@ -27,6 +27,7 @@ public interface IFruitBankDataControllerCommon public Task?> GetShippingItems(); public Task GetShippingItemById(int id); public Task UpdateShippingItem(ShippingItem shippingItem); + public Task UpdateMeasuredShippingItem(ShippingItem shippingItem); #endregion ShippingItem #region ShippingDocument diff --git a/FruitBank.Common/Interfaces/IShippingDocument.cs b/FruitBank.Common/Interfaces/IShippingDocument.cs index 8ac18ec..9d39cb5 100644 --- a/FruitBank.Common/Interfaces/IShippingDocument.cs +++ b/FruitBank.Common/Interfaces/IShippingDocument.cs @@ -13,5 +13,6 @@ public interface IShippingDocument: IEntityInt, ITimeStampInfo public bool IsAllMeasured { get; set; } public Partner? Partner { get; set; } + public Shipping? Shipping{ 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 cff36e0..1c1cd94 100644 --- a/FruitBank.Common/Interfaces/IShippingItem.cs +++ b/FruitBank.Common/Interfaces/IShippingItem.cs @@ -1,5 +1,7 @@ using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; +using FruitBank.Common.Entities; +using Nop.Core.Domain.Catalog; namespace FruitBank.Common.Interfaces; @@ -9,10 +11,19 @@ public interface IShippingItem : IEntityInt, ITimeStampInfo int? ProductId { get; set; } string Name { get; set; } + int Quantity { get; set; } double NetWeight { get; set; } double GrossWeight { get; set; } + + int? MeasuredQuantity { get; set; } double? MeasuredNetWeight { get; set; } double? MeasuredGrossWeight { get; set; } + bool IsMeasurable { get; set; } bool IsMeasured { get; set; } + + public Product? Product { get; set; } + public ShippingDocument? ShippingDocument { get; set; } + + public bool IsValidMeasuringValues(); } \ No newline at end of file diff --git a/FruitBank.Common/Loggers/ILogger.cs b/FruitBank.Common/Loggers/ILogger.cs deleted file mode 100644 index 2222d04..0000000 --- a/FruitBank.Common/Loggers/ILogger.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AyCode.Core.Loggers; - -namespace FruitBank.Common.Loggers; - -public interface ILogger : ILogger -{ - -} -public interface ILogger : IAcLoggerBase -{ - -} \ No newline at end of file diff --git a/FruitBank.Common/Loggers/Logger.cs b/FruitBank.Common/Loggers/Logger.cs deleted file mode 100644 index af6538d..0000000 --- a/FruitBank.Common/Loggers/Logger.cs +++ /dev/null @@ -1,32 +0,0 @@ -using AyCode.Core.Enums; -using AyCode.Core.Loggers; - -namespace FruitBank.Common.Loggers; - -public class Logger : Logger, ILogger -{ - public Logger() : base(typeof(TCategory).Name) - { } - - public Logger(params IAcLogWriterBase[] logWriters) : base(typeof(TCategory).Name, logWriters) - { } - - public Logger(AppType appType, LogLevel logLevel, params IAcLogWriterBase[] logWriters) : base(appType, logLevel, typeof(TCategory).Name, logWriters) - { } -} - -public class Logger : AcLoggerBase, ILogger -{ - 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/FruitBank.Common/SignalRs/SignalRTags.cs b/FruitBank.Common/SignalRs/SignalRTags.cs index d18a5f2..6917a43 100644 --- a/FruitBank.Common/SignalRs/SignalRTags.cs +++ b/FruitBank.Common/SignalRs/SignalRTags.cs @@ -24,6 +24,7 @@ public class SignalRTags : AcSignalRTags public const int GetShippingItemById = 51; public const int AddShippingItem = 55; public const int UpdateShippingItem = 56; + public const int UpdateMeasuredShippingItem = 57; public const int GetShippingDocuments = 60; public const int GetShippingDocumentById = 61; diff --git a/FruitBankHybrid.Shared/Pages/Login.razor.cs b/FruitBankHybrid.Shared/Pages/Login.razor.cs index 91ea4c5..f1e4b20 100644 --- a/FruitBankHybrid.Shared/Pages/Login.razor.cs +++ b/FruitBankHybrid.Shared/Pages/Login.razor.cs @@ -6,6 +6,7 @@ using FruitBank.Common.Loggers; using FruitBankHybrid.Shared.Services.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; using Mango.Nop.Core.Dtos; +using Mango.Nop.Core.Loggers; using Mango.Nop.Core.Models; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor index 0edbf3c..fddd82f 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor @@ -100,19 +100,36 @@ - + @* *@ - + - + - + + + + diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs index 42c349f..5a6dd44 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs @@ -2,13 +2,16 @@ using AyCode.Core.Loggers; using AyCode.Models.Users; using DevExpress.Blazor; +using DevExpress.Data.Mask.Internal; using FruitBank.Common.Entities; +using FruitBank.Common.Interfaces; using FruitBank.Common.Loggers; using FruitBank.Common.Models; using FruitBankHybrid.Shared.Services.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; using Mango.Nop.Core.Dtos; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; using Microsoft.Extensions.Logging; using Microsoft.JSInterop; using System; @@ -17,21 +20,21 @@ using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; -using DevExpress.Data.Mask.Internal; -using Microsoft.AspNetCore.Components.Forms; using static System.Net.Mime.MediaTypeNames; using static System.Runtime.InteropServices.JavaScript.JSType; -using ILogger = FruitBank.Common.Loggers.ILogger; +using ILogger = Mango.Nop.Core.Loggers.ILogger; namespace FruitBankHybrid.Shared.Pages { public class ShippingDateModel { + public int ShippingId { get; set; } public DateTime DateTime { get; set; } public bool IsMeasured { get; set; } - public ShippingDateModel(DateTime dateTime, bool isMeasured) + public ShippingDateModel(int shippingId, DateTime dateTime, bool isMeasured) { + ShippingId = shippingId; DateTime = dateTime; IsMeasured = isMeasured; } @@ -70,8 +73,8 @@ namespace FruitBankHybrid.Shared.Pages { var shippings = await FruitBankSignalRClient.GetShippings() ?? []; - _shippingDates = shippings.Select(x => new ShippingDateModel(x.ShippingDate.Date, x.IsAllMeasured)).ToList(); - NotMeasuredShippings = shippings.Where(x => DaysEqual(x.ShippingDate.Date, dateTime)).ToList(); + _shippingDates = shippings.Select(shipping => new ShippingDateModel(shipping.Id, shipping.ShippingDate.Date, shipping.IsAllMeasured)).ToList(); + NotMeasuredShippings = shippings.Where(shipping => DaysEqual(shipping.ShippingDate.Date, dateTime)).ToList(); //if (getAllShipping) NotMeasuredShippings = await FruitBankSignalRClient.GetShippings() ?? []; //else NotMeasuredShippings = await FruitBankSignalRClient.GetNotMeasuredShippings() ?? []; @@ -135,10 +138,23 @@ namespace FruitBankHybrid.Shared.Pages { if (SelectedShippingItem == null || shippingItemFromDb == null) return; + SelectedShippingItem.MeasuredQuantity = shippingItemFromDb.MeasuredQuantity; SelectedShippingItem.MeasuredNetWeight = shippingItemFromDb.MeasuredNetWeight; SelectedShippingItem.MeasuredGrossWeight = shippingItemFromDb.MeasuredGrossWeight; SelectedShippingItem.IsMeasured = shippingItemFromDb.IsMeasured; + if (SelectedShippingDocument != null) + SelectedShippingDocument.IsAllMeasured = SelectedShippingDocument.ShippingItems?.All(si => si.IsMeasured) ?? false; + + if (SelectedShipping != null) + { + SelectedShipping.IsAllMeasured = SelectedShipping.ShippingDocuments?.All(sd => sd.IsAllMeasured) ?? false; + + var shippingDate = _shippingDates.FirstOrDefault(shipping => shipping.ShippingId == SelectedShipping.Id); + if (shippingDate != null) shippingDate.IsMeasured = SelectedShipping.IsAllMeasured; + } + + //if (SelectedShippingItem is { IsMeasured: true }) //{ // SelectedShippingDocument?.ShippingItems?.Remove(SelectedShippingItem); @@ -150,12 +166,20 @@ namespace FruitBankHybrid.Shared.Pages private async Task UpdateShippingItem(ShippingItem? shippingItem) { - if (shippingItem is { MeasuredGrossWeight: > 0, MeasuredNetWeight: > 0 }) + if (shippingItem != null && shippingItem.IsValidMeasuringValues()) { BtnSaveEnabled = false; - shippingItem.IsMeasured = shippingItem is { MeasuredGrossWeight: > 0, MeasuredNetWeight: > 0 }; - RefreshSelectedShippingItemMeasuredValuesFromDb(await FruitBankSignalRClient.UpdateShippingItem(shippingItem)); + var updatedShippingItem = await FruitBankSignalRClient.UpdateMeasuredShippingItem(shippingItem); + if (updatedShippingItem == null) + { + _logger.Error($"Sikertelen volt a shippingItem mentése! Id: {shippingItem.Id}"); + //TODO: - J. + + return; + } + + RefreshSelectedShippingItemMeasuredValuesFromDb(updatedShippingItem); } } @@ -176,24 +200,27 @@ namespace FruitBankHybrid.Shared.Pages switch (fieldName) { - case nameof(ShippingItem.Name): - SelectedShippingItem.Name = newValue.ToString() ?? string.Empty; - break; - case nameof(ShippingItem.GrossWeight): - SelectedShippingItem.GrossWeight = (double)newValue; - break; - case nameof(ShippingItem.NetWeight): - SelectedShippingItem.NetWeight = (double)newValue; - break; - case nameof(ShippingItem.MeasuredGrossWeight): - SelectedShippingItem.MeasuredGrossWeight = (double)newValue; + //case nameof(ShippingItem.Name): + // SelectedShippingItem.Name = newValue.ToString() ?? string.Empty; + // break; + //case nameof(ShippingItem.GrossWeight): + // SelectedShippingItem.GrossWeight = (double)newValue; + // break; + //case nameof(ShippingItem.NetWeight): + // SelectedShippingItem.NetWeight = (double)newValue; + // break; + case nameof(ShippingItem.MeasuredQuantity): + SelectedShippingItem.MeasuredQuantity = (int)newValue <= 0 ? null : (int)newValue; break; case nameof(ShippingItem.MeasuredNetWeight): - SelectedShippingItem.MeasuredNetWeight = (double)newValue; + SelectedShippingItem.MeasuredNetWeight = !SelectedShippingItem.IsMeasurable || (double)newValue <= 0 ? null : (double)newValue; + break; + case nameof(ShippingItem.MeasuredGrossWeight): + SelectedShippingItem.MeasuredGrossWeight = !SelectedShippingItem.IsMeasurable || (double)newValue <= 0 ? null : (double)newValue; break; } - //if (SelectedShippingItem.MeasuredGrossWeight > 0 && SelectedShippingItem.MeasuredNetWeight > 0) + if (SelectedShippingItem.IsValidMeasuringValues()) BtnSaveEnabled = true; } diff --git a/FruitBankHybrid.Shared/Services/Loggers/LoggerClient.cs b/FruitBankHybrid.Shared/Services/Loggers/LoggerClient.cs index b1984a6..e234d14 100644 --- a/FruitBankHybrid.Shared/Services/Loggers/LoggerClient.cs +++ b/FruitBankHybrid.Shared/Services/Loggers/LoggerClient.cs @@ -2,6 +2,7 @@ using AyCode.Core.Loggers; using FruitBank.Common; using FruitBank.Common.Loggers; +using Mango.Nop.Core.Loggers; namespace FruitBankHybrid.Shared.Services.Loggers; diff --git a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs index 5a6ed19..c31168a 100644 --- a/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs +++ b/FruitBankHybrid.Shared/Services/SignalRs/FruitBankSignalRClient.cs @@ -72,6 +72,10 @@ namespace FruitBankHybrid.Shared.Services.SignalRs public Task UpdateShippingItem(ShippingItem shippingItem) => PostDataAsync(SignalRTags.UpdateShippingItem, shippingItem); + + public Task UpdateMeasuredShippingItem(ShippingItem shippingItem) + => PostDataAsync(SignalRTags.UpdateMeasuredShippingItem, shippingItem); + #endregion ShippingItem #region ShippingDocument From 8cae7bbd769d075746d5449cebe01e51d09278dd Mon Sep 17 00:00:00 2001 From: Loretta Date: Tue, 23 Sep 2025 12:16:55 +0200 Subject: [PATCH 2/2] fixes... --- .../FruitBankClientTests.cs | 39 +++++++++++++++---- .../Pages/MeasuringIn.razor.cs | 19 +-------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs index c6ec44f..834572a 100644 --- a/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs +++ b/FruitBankHybrid.Shared.Tests/FruitBankClientTests.cs @@ -2,8 +2,10 @@ using AyCode.Core.Loggers; using AyCode.Utils.Extensions; using FruitBank.Common.Entities; +using FruitBank.Common.Interfaces; using FruitBank.Common.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; +using System.Diagnostics.CodeAnalysis; namespace FruitBankHybrid.Shared.Tests { @@ -133,16 +135,22 @@ namespace FruitBankHybrid.Shared.Tests Assert.IsNotNull(shippingItems); Assert.IsTrue(shippingItems.Count != 0); + + Assert.IsTrue(shippingItems.All(si=>si.Product?.Id == si.ProductId), "shippingItem.Product == null"); } //[TestMethod] //[DataRow(1)] - public async Task GetShippingItemByIdTest(int shippingItemeId) + [return: NotNull] + public async Task GetShippingItemByIdTest(int shippingItemId) { - var shippingItem = await _signalRClient.GetShippingItemById(shippingItemeId); + var shippingItem = await _signalRClient.GetShippingItemById(shippingItemId); Assert.IsNotNull(shippingItem); - Assert.IsTrue(shippingItem.Id == shippingItemeId); + Assert.IsNotNull(shippingItem.Product, $"shippingItem.Product == null; shippingItem.Id: {shippingItem.ProductId}"); + Assert.IsTrue(shippingItem.Id == shippingItemId); + + Assert.IsTrue(shippingItem.Quantity > 0, "Quantity == 0"); Assert.IsTrue(shippingItem.NetWeight > 0, "NetWeight == 0"); Assert.IsTrue(shippingItem.GrossWeight > 0, "GrossWeight == 0"); @@ -151,21 +159,38 @@ namespace FruitBankHybrid.Shared.Tests [DataTestMethod] [DataRow(1)] + //[DataRow(2)] public async Task UpdateShippingItemTest(int shippingItemId) { - var shippingItem = await GetShippingItemByIdTest(shippingItemId); - var newName = GetFixtureName(shippingItem.Name); + var originalShippingItem = await GetShippingItemByIdTest(shippingItemId); + var newName = GetFixtureName(originalShippingItem.Name); + var shippingItem = await GetShippingItemByIdTest(shippingItemId); shippingItem.Name = newName; //shippingItem.MeasuredGrossWeight = 5; - await _signalRClient.UpdateShippingItem(shippingItem); + shippingItem = await _signalRClient.UpdateShippingItem(shippingItem); + + Assert.IsNotNull(shippingItem); + Assert.IsNotNull(shippingItem.Product); + Assert.IsTrue(shippingItem.Name == newName); + Assert.IsTrue(shippingItem.Product.StockQuantity == originalShippingItem.Product!.StockQuantity); shippingItem = await GetShippingItemByIdTest(shippingItemId); + Assert.IsTrue(shippingItem.Name == newName); + Assert.IsTrue(shippingItem.Product!.StockQuantity == originalShippingItem.Product.StockQuantity); //Assert.IsTrue(shippingItem.MeasuredGrossWeight is 5); shippingItem.Name = GetOriginalName(shippingItem.Name); - await _signalRClient.UpdateShippingItem(shippingItem); + shippingItem = await _signalRClient.UpdateShippingItem(shippingItem); + + Assert.IsNotNull(shippingItem); + Assert.IsNotNull(shippingItem.Product); + + shippingItem = await GetShippingItemByIdTest(shippingItemId); + + Assert.IsTrue(shippingItem.Name == originalShippingItem.Name); + Assert.IsTrue(shippingItem.Product!.StockQuantity == originalShippingItem.Product.StockQuantity); } #endregion ShippingItem diff --git a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs index 5a6dd44..50814c0 100644 --- a/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs +++ b/FruitBankHybrid.Shared/Pages/MeasuringIn.razor.cs @@ -1,27 +1,10 @@ -using AyCode.Core.Helpers; -using AyCode.Core.Loggers; -using AyCode.Models.Users; +using AyCode.Core.Loggers; using DevExpress.Blazor; -using DevExpress.Data.Mask.Internal; using FruitBank.Common.Entities; -using FruitBank.Common.Interfaces; -using FruitBank.Common.Loggers; using FruitBank.Common.Models; using FruitBankHybrid.Shared.Services.Loggers; using FruitBankHybrid.Shared.Services.SignalRs; -using Mango.Nop.Core.Dtos; using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using Microsoft.Extensions.Logging; -using Microsoft.JSInterop; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Cryptography.X509Certificates; -using System.Text; -using System.Threading.Tasks; -using static System.Net.Mime.MediaTypeNames; -using static System.Runtime.InteropServices.JavaScript.JSType; using ILogger = Mango.Nop.Core.Loggers.ILogger; namespace FruitBankHybrid.Shared.Pages