From 71f6407845273bffcdd64d2b2a336adca37b4505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Concei=C3=A7=C3=A3o?= Date: Tue, 5 Apr 2022 22:19:50 +0100 Subject: [PATCH] Update `MaterialCost` when `MaterialMilliliters` changes (#449) - (Add) Property `StartingMaterialMilliliters`: Gets the starting material milliliters when the file loaded - (Add) Property `StartingMaterialCost`: Gets the starting material cost when the file loaded - (Improvement) Update `MaterialCost` when `MaterialMilliliters` changes (#449) --- UVtools.Core/FileFormats/FileFormat.cs | 25 ++++++++++++++++++++++--- UVtools.Core/FileFormats/SL1File.cs | 5 ++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/UVtools.Core/FileFormats/FileFormat.cs b/UVtools.Core/FileFormats/FileFormat.cs index 8f10c8e..12ad9e4 100644 --- a/UVtools.Core/FileFormats/FileFormat.cs +++ b/UVtools.Core/FileFormats/FileFormat.cs @@ -2724,6 +2724,11 @@ public abstract class FileFormat : BindableBase, IDisposable, IEquatable + /// Gets the starting material milliliters when the file loaded + /// + public float StartingMaterialMilliliters { get; private set; } + /// /// Gets the estimate used material in ml /// @@ -2740,7 +2745,13 @@ public abstract class FileFormat : BindableBase, IDisposable, IEquatable 0 && StartingMaterialCost > 0) + { + MaterialCost = _materialMilliliters * StartingMaterialCost / StartingMaterialMilliliters; + } + //RaisePropertyChanged(nameof(MaterialCost)); } } @@ -2753,16 +2764,21 @@ public abstract class FileFormat : BindableBase, IDisposable, IEquatable _materialGrams; - set => RaiseAndSetIfChanged(ref _materialGrams, value); + set => RaiseAndSetIfChanged(ref _materialGrams, (float)Math.Round(value, 3)); } + /// + /// Gets the starting material cost when the file loaded + /// + public float StartingMaterialCost { get; private set; } + /// /// Gets the estimate material cost /// public virtual float MaterialCost { get => _materialCost; - set => RaiseAndSetIfChanged(ref _materialCost, value); + set => RaiseAndSetIfChanged(ref _materialCost, (float)Math.Round(value, 3)); } /// @@ -3295,6 +3311,9 @@ public abstract class FileFormat : BindableBase, IDisposable, IEquatable (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.MaterialDensity, 3); - public override float MaterialCost => MaterialSettings.BottleVolume > 0 ? (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.BottleCost / MaterialSettings.BottleVolume, 3) : 0; + public override float MaterialCost => + MaterialSettings.BottleVolume > 0 + ? (float) Math.Round(OutputConfigSettings.UsedMaterial * MaterialSettings.BottleCost / MaterialSettings.BottleVolume, 3) + : base.MaterialCost; public override string? MaterialName {