private static bool CompareReferences(double value, double reference, BooleanBinding.CheckTypes checkType, bool defaultValue) { switch (checkType) { case BooleanBinding.CheckTypes.EqualToReference: return(Math.Abs(value - reference) < 0.0001); case BooleanBinding.CheckTypes.GreaterThanReference: return(value > reference); case BooleanBinding.CheckTypes.LessThanReference: return(value < reference); } return(defaultValue); }
public static void UpdateSubscriber(out Func <bool> getter, BooleanBinding.CheckTypes checkType, IProperty property, double reference, bool defaultValue) { getter = null; switch (checkType) { case BooleanBinding.CheckTypes.Boolean: { Property <bool> res; if (TryGetProperty(property, out res)) { getter = () => res.Value; } break; } case BooleanBinding.CheckTypes.Empty: { Property <string> res; if (TryGetProperty(property, out res)) { getter = () => String.IsNullOrEmpty(res.Value); } break; } case BooleanBinding.CheckTypes.EqualToReference: case BooleanBinding.CheckTypes.GreaterThanReference: case BooleanBinding.CheckTypes.LessThanReference: { Property <int> intProp; if (TryGetProperty(property, out intProp)) { getter = () => CompareReferences(intProp.Value, reference, checkType, defaultValue); } break; } } }