aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.BL/Entities/JobRun.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.BL/Entities/JobRun.cs')
-rw-r--r--Software/Visual_Studio/Tango.BL/Entities/JobRun.cs33
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;