improvements, fixes, etc...

This commit is contained in:
Loretta 2025-10-04 07:17:14 +02:00
parent e918a77db3
commit 3ce49ab578
10 changed files with 154 additions and 32 deletions

View File

@ -0,0 +1,10 @@
namespace FruitBank.Common;
public enum DocumentType : byte
{
NotSet = 0,
Unknown = 5,
ShippingDocument = 10,
OrderForm = 15,
}

View File

@ -0,0 +1,19 @@
using FruitBank.Common.Interfaces;
using LinqToDB.Mapping;
using Mango.Nop.Core.Entities;
namespace FruitBank.Common.Entities;
[Table(Name = FruitBankConstClient.FilesDbTableName)]
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.FilesDbTableName)]
public class Files : MgEntityBase, IFiles
{
public string FileName { get; set; }
public string FileExtension { get; set; }
public string RawText { get; set; }
[SkipValuesOnUpdate]
public DateTime Created { get; set; }
public DateTime Modified { get; set; }
}

View File

@ -23,7 +23,6 @@ public class Partner : MgEntityBase, IPartner
public List<ShippingDocument>? ShippingDocuments { get; set; }
[SkipValuesOnUpdate]
public DateTime Created { get; set; }
public DateTime Modified { get; set; }

View File

@ -27,6 +27,9 @@ public class ShippingDocument : MgEntityBase, IShippingDocument
[Association(ThisKey = nameof(Id), OtherKey = nameof(ShippingItem.ShippingDocumentId), CanBeNull = true)]
public List<ShippingItem>? ShippingItems { get; set; }
[Association(ThisKey = nameof(Id), OtherKey = nameof(FruitBank.Common.Entities.ShippingDocumentToFiles.ShippingDocumentId), CanBeNull = true)]
public List<ShippingDocumentToFiles>? ShippingDocumentToFiles { get; set; }
[SkipValuesOnUpdate]
public DateTime Created { get; set; }

View File

@ -0,0 +1,25 @@
using FruitBank.Common.Interfaces;
using LinqToDB.Mapping;
using Mango.Nop.Core.Entities;
namespace FruitBank.Common.Entities;
[Table(Name = FruitBankConstClient.ShippingDocumentToFilesDbTableName)]
[System.ComponentModel.DataAnnotations.Schema.Table(FruitBankConstClient.ShippingDocumentToFilesDbTableName)]
public class ShippingDocumentToFiles : MgEntityBase, IShippingDocumentToFiles
{
public int FilesId { get; set; }
public int ShippingDocumentId { get; set; }
public DocumentType DocumentType { get; set; }
[Association(ThisKey = nameof(FilesId), OtherKey = nameof(Files.Id), CanBeNull = true)]
public Files? ShippingDocumentFile { get; set; }
[Association(ThisKey = nameof(ShippingDocumentId), OtherKey = nameof(ShippingDocument.Id), CanBeNull = true)]
public ShippingDocument? ShippingDocument { get; set; }
[SkipValuesOnUpdate] public DateTime Created { get; set; }
public DateTime Modified { get; set; }
}

View File

@ -15,11 +15,14 @@ public static class FruitBankConstClient
public static string DefaultHubName = "fbHub";
public static string LoggerHubName = "loggerHub";
public const string FilesDbTableName = "fbFiles";
public const string PartnerDbTableName = "fbPartner";
public const string ShippingDbTableName = "fbShipping";
public const string ShippingItemDbTableName = "fbShippingItem";
public const string ShippingItemPalletDbTableName = "fbShippingItemPallet";
public const string ShippingDocumentDbTableName = "fbShippingDocument";
public const string ShippingDocumentToFilesDbTableName = "fbShippingDocumentToFiles";
//public static Guid[] DevAdminIds = new Guid[2] { Guid.Parse("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd"), Guid.Parse("4cbaed43-2465-4d99-84f1-c8bc6b7025f7") };

View File

@ -0,0 +1,11 @@
using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace FruitBank.Common.Interfaces;
public interface IFiles: IEntityInt, ITimeStampInfo
{
public string FileName { get; set; }
public string FileExtension { get; set; }
public string RawText { get; set; }
}

View File

@ -0,0 +1,16 @@
using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
using FruitBank.Common.Entities;
using LinqToDB.DataProvider.SapHana;
namespace FruitBank.Common.Interfaces;
public interface IShippingDocumentToFiles : IEntityInt, ITimeStampInfo
{
int FilesId { get; set; }
int ShippingDocumentId { get; set; }
DocumentType DocumentType { get; set; }
Files? ShippingDocumentFile { get; set; }
ShippingDocument? ShippingDocument { get; set; }
}

View File

@ -7,9 +7,9 @@ public class MeasuringAttributeValues : IMeasuringAttributeValues
{
public int Id { get; set; }
public double NetWeight { get; set; }
public double GrossWeight { get; set; }
public bool IsMeasurable { get; set; }
public double NetWeight { get; set; } = int.MinValue;
public double GrossWeight { get; set; } = int.MinValue;
public bool IsMeasurable { get; set; } = false;
public MeasuringAttributeValues()
{
@ -28,7 +28,7 @@ public class MeasuringAttributeValues : IMeasuringAttributeValues
IsMeasurable = isMeasurable;
}
public bool HasMeasuringValues() => Id > 0 && NetWeight > 0 && GrossWeight > 0 && IsMeasurable;
public bool HasMeasuringValues() => Id > 0 && NetWeight > int.MinValue && GrossWeight > int.MinValue && IsMeasurable;
public override string ToString()
{

View File

@ -151,10 +151,25 @@ namespace FruitBankHybrid.Shared.Tests
Assert.IsTrue(shippingItems.All(si=>si.Product?.Id == si.ProductId), "shippingItem.Product == null");
}
//[TestMethod]
//[DataRow(1)]
[TestMethod]
[DataRow(1, true)]
[DataRow(2, true)]
[DataRow(3, false)]
[DataRow(4, false)]
public async Task GetShippingItemByIdTest(int shippingItemId, bool shippingDocumentFileExcepted)
{
var shippingItem = await GetShippingItemByIdAsync(shippingItemId);
if (shippingDocumentFileExcepted) Assert.IsTrue(shippingItem.ShippingDocument?.ShippingDocumentToFiles?.FirstOrDefault()?.ShippingDocumentFile?.Id == 1);
else
{
Assert.IsNotNull(shippingItem.ShippingDocument);
Assert.IsTrue(shippingItem.ShippingDocument.ShippingDocumentToFiles?.Count == 0);
}
}
[return: NotNull]
public async Task<ShippingItem> GetShippingItemByIdTest(int shippingItemId)
public async Task<ShippingItem> GetShippingItemByIdAsync(int shippingItemId)
{
var shippingItem = await _signalRClient.GetShippingItemById(shippingItemId);
@ -170,23 +185,19 @@ namespace FruitBankHybrid.Shared.Tests
}
[DataTestMethod]
[DataRow(1)]
[DataRow(2)]
[DataRow(3)]
[DataRow(4)]
[DataRow(5)]
public async Task UpdateShippingItemTest(int shippingItemId)
[DataRow(1, -1, -2.137563300001, -3.75238200001)]
[DataRow(2, -1, -2.137563300001, 3.75238200001)]
[DataRow(3, 1, 2.137563300001, -3.75238200001)]
[DataRow(4, -1, 2.137563300001, 3.75238200001)]
[DataRow(5, 1, 2.137563300001, 3.75238200001)]
public async Task UpdateShippingItemTest(int shippingItemId, int incQuantity, double incNetWeight, double incGrossWeight)
{
const int incQuantity = 1;
var incNetWeight = 2.137563300001;
var incGrossWeight = 3.75238200001;
var originalShippingItem = await GetShippingItemByIdTest(shippingItemId);
var originalMeasuringProductDto = await GetMeasuringProductDtoByIdTest(originalShippingItem.ProductId!.Value, originalShippingItem.IsMeasurable);
var originalShippingItem = await GetShippingItemByIdAsync(shippingItemId);
var originalMeasuringProductDto = await GetMeasuringProductDtoByIdAsync(originalShippingItem.ProductId!.Value, originalShippingItem.IsMeasurable);
Assert.IsTrue(originalShippingItem.IsMeasurable == originalMeasuringProductDto.IsMeasurable);
var shippingItem = await GetShippingItemByIdTest(shippingItemId);
var shippingItem = await GetShippingItemByIdAsync(shippingItemId);
shippingItem.MeasuredQuantity += incQuantity;
shippingItem.MeasuredNetWeight += incNetWeight;
@ -207,7 +218,7 @@ namespace FruitBankHybrid.Shared.Tests
Assert.IsTrue(shippingItem.MeasuredQuantity == originalShippingItem.MeasuredQuantity + incQuantity);
var measuringProductDto = await GetMeasuringProductDtoByIdTest(originalShippingItem.ProductId!.Value, shippingItem.IsMeasurable);
var measuringProductDto = await GetMeasuringProductDtoByIdAsync(originalShippingItem.ProductId!.Value, shippingItem.IsMeasurable);
Assert.IsTrue(measuringProductDto.StockQuantity == originalMeasuringProductDto.StockQuantity + incQuantity);
@ -229,11 +240,26 @@ namespace FruitBankHybrid.Shared.Tests
Assert.IsNotNull(shippingDocuments);
Assert.IsTrue(shippingDocuments.Count != 0);
Assert.IsTrue(shippingDocuments.Any(x => x.ShippingDocumentToFiles?.Count > 0));
}
//[TestMethod]
//[DataRow(2)]
public async Task<ShippingDocument> GetShippingDocumentByIdTest(int shippingDocumentId)
[TestMethod]
[DataRow(2, true)]
[DataRow(3, false)]
[DataRow(4, false)]
public async Task GetShippingDocumentByIdTest(int shippingDocumentId, bool shippingDocumentFileExcepted)
{
var shippingDocument = await GetShippingDocumentByIdAsync(shippingDocumentId);
if (shippingDocumentFileExcepted) Assert.IsTrue(shippingDocument.ShippingDocumentToFiles?.FirstOrDefault()?.ShippingDocumentFile?.Id == 1);
else
{
Assert.IsTrue(shippingDocument.ShippingDocumentToFiles?.Count == 0);
}
}
[return: NotNull]
public async Task<ShippingDocument> GetShippingDocumentByIdAsync(int shippingDocumentId)
{
var shippingDocument = await _signalRClient.GetShippingDocumentById(shippingDocumentId);
@ -247,14 +273,16 @@ namespace FruitBankHybrid.Shared.Tests
[DataRow(2)]
public async Task UpdateShippingDocumentTest(int shippingDocumentId)
{
var shippingDocument = await GetShippingDocumentByIdTest(shippingDocumentId);
var shippingDocument = await GetShippingDocumentByIdAsync(shippingDocumentId);
var newCountry = GetFixtureName(shippingDocument.Country);
shippingDocument.Country = newCountry;
await _signalRClient.UpdateShippingDocument(shippingDocument);
shippingDocument = await GetShippingDocumentByIdTest(shippingDocumentId);
shippingDocument = await GetShippingDocumentByIdAsync(shippingDocumentId);
Assert.IsTrue(shippingDocument.Country == newCountry);
Assert.IsTrue(shippingDocument!.ShippingDocumentToFiles?.FirstOrDefault()?.ShippingDocumentFile?.Id == 1);
shippingDocument.Country = GetOriginalName(shippingDocument.Country);
await _signalRClient.UpdateShippingDocument(shippingDocument);
@ -311,11 +339,17 @@ namespace FruitBankHybrid.Shared.Tests
Assert.IsTrue(measuringProductDtos.All(x => !x.IsMeasurable || x.HasMeasuringValues()));
}
//[TestMethod]
//[DataRow(1)]
//[DataRow(5)]
//[DataRow(33)]
public async Task<MeasuringProductDto> GetMeasuringProductDtoByIdTest(int productId, bool isMeasurableExcepted)
[TestMethod]
[DataRow(1, true)]
[DataRow(5, true)]
[DataRow(6, false)]
[DataRow(33, true)]
public async Task GetMeasuringProductDtoByIdTest(int productId, bool isMeasurableExcepted)
{
await GetMeasuringProductDtoByIdAsync(productId, isMeasurableExcepted);
}
public async Task<MeasuringProductDto> GetMeasuringProductDtoByIdAsync(int productId, bool isMeasurableExcepted)
{
var measuringProductDto = await _signalRClient.GetMeasuringProductDtoById(productId);
@ -328,6 +362,8 @@ namespace FruitBankHybrid.Shared.Tests
Assert.IsTrue(measuringProductDto.StockQuantity > 0);
Assert.IsTrue(measuringProductDto.NetWeight == 0);
Assert.IsTrue(measuringProductDto.GrossWeight == 0);
Assert.IsFalse(measuringProductDto.IsMeasurable);
}
return measuringProductDto;