improvements, fixes, etc...
This commit is contained in:
parent
e918a77db3
commit
3ce49ab578
|
|
@ -0,0 +1,10 @@
|
|||
namespace FruitBank.Common;
|
||||
|
||||
public enum DocumentType : byte
|
||||
{
|
||||
NotSet = 0,
|
||||
Unknown = 5,
|
||||
ShippingDocument = 10,
|
||||
OrderForm = 15,
|
||||
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
|
|
@ -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") };
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue