/// <summary> /// Decrease amount value. /// </summary> /// <param name="decreaseValue">Value to decrease.</param> /// <param name="operation">amount operation type.</param> public void Decrease(float decreaseValue, AmountOperation operation) { var previousValue = value; value = ClampValue(GetComputedValue(value - decreaseValue, operation)); CallEvents(previousValue); }
/// <summary> /// Gets the computed value using operation type. /// </summary> /// <param name="valueToCompute">The value to compute.</param> /// <param name="operation">The operation to apply.</param> /// <returns>The computed value.</returns> private float GetComputedValue(float valueToCompute, AmountOperation operation) { switch (operation) { case AmountOperation.Default: return(valueToCompute); case AmountOperation.MissingPercentage: return(MissingValue * valueToCompute / 100f); case AmountOperation.RangePercentage: return(RangeValue * valueToCompute / 100f); case AmountOperation.RemainingPercentage: return(RemainingValue * valueToCompute / 100f); default: return(0); } }
/// <summary> /// Decrease minimum value. /// </summary> /// <param name="decreaseMinimumValue">Value to decrease.</param> /// <param name="operation">amount operation type.</param> public void DecreaseMinimum(float decreaseMinimumValue, AmountOperation operation) { SetMinimum(GetComputedValue(maximum - decreaseMinimumValue, operation)); }
/// <summary> /// Increase maximum value; /// </summary> /// <param name="increaseMaximumValue">Value to increase.</param> /// <param name="operation">amount operation type.</param> public void IncreaseMaximum(float increaseMaximumValue, AmountOperation operation) { SetMaximum(GetComputedValue(maximum + increaseMaximumValue, operation)); }