feature(feedbacks): adds public property AlwaysSendValue and new constructor to Bool, Int, and String Feedbacks that will always perform a FireUpdate event even when value is the same.

This commit is contained in:
Jason Alborough
2021-07-25 11:52:10 -04:00
parent 10f5516a5a
commit e3f5d74e7e
3 changed files with 23 additions and 4 deletions

View File

@@ -23,6 +23,7 @@ namespace PepperDash.Essentials.Core
/// </summary>
public Func<string> ValueFunc { get; private set; }
List<StringInputSig> LinkedInputSigs = new List<StringInputSig>();
public bool AlwaysSendValue;
/// <summary>
/// Creates the feedback with the Func as described.
@@ -51,13 +52,17 @@ namespace PepperDash.Essentials.Core
{
ValueFunc = valueFunc;
}
public StringFeedback(string key, bool alwaysSendValue, Func<string> valueFunc)
: this(key, valueFunc)
{
AlwaysSendValue = alwaysSendValue;
}
public override void FireUpdate()
{
var newValue = InTestMode ? TestValue : ValueFunc.Invoke();
if (newValue != _StringValue)
if (newValue != _StringValue || AlwaysSendValue)
{
_StringValue = newValue;
LinkedInputSigs.ForEach(s => UpdateSig(s));