diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.BL')
| -rw-r--r-- | Software/Visual_Studio/Tango.BL/Entities/JobRun.cs | 33 |
1 files changed, 23 insertions, 10 deletions
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<JobRunLiquidQuantity>(); - _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; |
