StockEntity.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using InABox.Core;
  3. using PRSClasses;
  4. namespace Comal.Classes
  5. {
  6. public abstract class StockEntity : DimensionedEntity<StockDimensions>
  7. {
  8. public abstract ProductLink Product { get; set; }
  9. public static void LinkStockDimensions<TStock>() where TStock : StockEntity
  10. {
  11. LinkedProperties.Register<TStock, ProductDimensionUnitLink, Guid>(x => x.Product.UnitOfMeasure, x => x.ID, x => x.Dimensions.Unit.ID);
  12. LinkedProperties.Register<TStock, ProductDimensionUnitLink, String>(x => x.Product.UnitOfMeasure, x => x.Code, x => x.Dimensions.Unit.Code);
  13. LinkedProperties.Register<TStock, ProductDimensionUnitLink, String>(x => x.Product.UnitOfMeasure, x => x.Description, x => x.Dimensions.Unit.Description);
  14. LinkedProperties.Register<TStock, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasLength, x => x.Dimensions.Unit.HasLength);
  15. LinkedProperties.Register<TStock, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasHeight, x => x.Dimensions.Unit.HasHeight);
  16. LinkedProperties.Register<TStock, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasQuantity, x => x.Dimensions.Unit.HasQuantity);
  17. LinkedProperties.Register<TStock, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasWeight, x => x.Dimensions.Unit.HasWeight);
  18. LinkedProperties.Register<TStock, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasWidth, x => x.Dimensions.Unit.HasWidth);
  19. LinkedProperties.Register<TStock, ProductDimensionUnitLink, String>(x => x.Product.UnitOfMeasure, x => x.Formula, x => x.Dimensions.Unit.Formula);
  20. LinkedProperties.Register<TStock, ProductDimensionUnitLink, String>(x => x.Product.UnitOfMeasure, x => x.Format, x => x.Dimensions.Unit.Format);
  21. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Height, x => x.Dimensions.Height);
  22. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Length, x => x.Dimensions.Length);
  23. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Quantity, x => x.Dimensions.Quantity);
  24. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Weight, x => x.Dimensions.Weight);
  25. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Width, x => x.Dimensions.Width);
  26. LinkedProperties.Register<TStock, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Value, x => x.Dimensions.Value);
  27. LinkedProperties.Register<TStock, StockDimensions, String>(x => x.Product.DefaultInstance.Dimensions, x => x.UnitSize, x => x.Dimensions.UnitSize);
  28. }
  29. }
  30. }