From b3f8ff791b0da2b600b719b745b99029b2df1c32 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Wed, 10 Sep 2025 03:02:56 +0300 Subject: Machine Studio: Added support for all inks and future inks. Added failure reason. Implemented dynamic CSV Export. --- Software/Visual_Studio/Tango.BL/Entities/JobRun.cs | 33 +++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'Software/Visual_Studio/Tango.BL') diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs index f2a182e84..d98c384ce 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs @@ -95,16 +95,29 @@ namespace Tango.BL.Entities { _liquidQuantitiesFast = new List(); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Cyan, Quantity = CyanQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Magenta, Quantity = MagentaQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Yellow, Quantity = YellowQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Black, Quantity = BlackQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Transparent, Quantity = TransparentQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Lubricant, Quantity = LubricantQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.Cleaner, Quantity = CleanerQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.LightCyan, Quantity = LightCyanQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.LightMagenta, Quantity = LightMagentaQuantity }); - _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() { LiquidType = LiquidTypes.LightYellow, Quantity = LightYellowQuantity }); + // Cache all properties once for faster lookup + var props = this.GetType() + .GetProperties() + .Where(p => p.Name.EndsWith("Quantity", StringComparison.OrdinalIgnoreCase)) + .ToDictionary(p => p.Name.ToLowerInvariant()); + + foreach (LiquidTypes lt in Enum.GetValues(typeof(LiquidTypes))) + { + string expectedPropName = (lt.ToString() + "Quantity").ToLowerInvariant(); + + if (props.TryGetValue(expectedPropName, out var prop)) + { + var value = prop.GetValue(this); + if (value != null) + { + _liquidQuantitiesFast.Add(new JobRunLiquidQuantity() + { + LiquidType = lt, + Quantity = Convert.ToInt64(value) + }); + } + } + } } return _liquidQuantitiesFast; -- cgit v1.3.1