private static bool IsValidIntegerRule(IntegerDataUnit validIntegerDataUnit, IntegerValueRule integerValueRule) { RuleToApply ruleToApply = RuleToApply.NOTEQUALTO; if (integerValueRule.GreaterThan.HasValue || integerValueRule.LessThan.HasValue) { ruleToApply = RuleToApply.GREATERORLESSER; } else if (integerValueRule.EqualTo.HasValue) { ruleToApply = RuleToApply.EQUALTO; } else if (integerValueRule.NotEqualTo.HasValue) { ruleToApply = RuleToApply.NOTEQUALTO; } else { throw new Exception($"Integer Value rule needs to have a proper value"); } switch (ruleToApply) { case RuleToApply.GREATERORLESSER: if (integerValueRule.GreaterThan.HasValue && integerValueRule.LessThan.HasValue) { if (validIntegerDataUnit.Value >= integerValueRule.GreaterThan.Value && validIntegerDataUnit.Value <= integerValueRule.LessThan.Value) { return(true); } return(false); } else if (integerValueRule.GreaterThan.HasValue && validIntegerDataUnit.Value >= integerValueRule.GreaterThan.Value) { return(true); } else if (integerValueRule.LessThan.HasValue && validIntegerDataUnit.Value <= integerValueRule.LessThan.Value) { return(true); } return(false); case RuleToApply.EQUALTO: return(validIntegerDataUnit.Value == integerValueRule.EqualTo); case RuleToApply.NOTEQUALTO: return(validIntegerDataUnit.Value != integerValueRule.NotEqualTo); default: throw new NotSupportedException("The given type is not valid"); } }
private static IntegerDataUnit GetIntegerDataUnit(InputDataUnit dataUnit) { if (!double.TryParse(dataUnit.Value, out double intResult)) { throw new Exception($"{dataUnit.Signal} : {dataUnit.Value} is not valid"); } if (IntegerDataUnit == null) { IntegerDataUnit = new IntegerDataUnit(dataUnit.Signal, intResult); } else { IntegerDataUnit.Signal = dataUnit.Signal; IntegerDataUnit.Value = intResult; } return(IntegerDataUnit); }