コード例 #1
0
        private static bool IsValidDateTimeRule(DateTimeDataUnit validDateTimeDataUnit, DateTimeValueRule dateTimeValueRule)
        {
            RuleToApply ruleToApply = RuleToApply.NOTEQUALTO;

            if (dateTimeValueRule.GreaterThan.HasValue || dateTimeValueRule.LesserThan.HasValue)
            {
                ruleToApply = RuleToApply.GREATERORLESSER;
            }
            else if (dateTimeValueRule.EqualTo.HasValue)
            {
                ruleToApply = RuleToApply.EQUALTO;
            }
            else if (dateTimeValueRule.NotEqualTo.HasValue)
            {
                ruleToApply = RuleToApply.NOTEQUALTO;
            }
            else
            {
                throw new Exception($"DateTime Value rule needs to have a proper value");
            }

            switch (ruleToApply)
            {
            case RuleToApply.GREATERORLESSER:
                if (dateTimeValueRule.GreaterThan.HasValue && dateTimeValueRule.LesserThan.HasValue)
                {
                    if (validDateTimeDataUnit.Value.CompareTo(dateTimeValueRule.GreaterThan.Value) >= 0 &&
                        validDateTimeDataUnit.Value.CompareTo(dateTimeValueRule.LesserThan.Value) <= 0)
                    {
                        return(true);
                    }
                    return(false);
                }
                else if (dateTimeValueRule.GreaterThan.HasValue && validDateTimeDataUnit.Value.CompareTo(dateTimeValueRule.GreaterThan.Value) >= 0)
                {
                    return(true);
                }
                else if (dateTimeValueRule.LesserThan.HasValue && validDateTimeDataUnit.Value.CompareTo(dateTimeValueRule.LesserThan.Value) <= 0)
                {
                    return(true);
                }
                return(false);

            case RuleToApply.EQUALTO:
                return(validDateTimeDataUnit.Value == dateTimeValueRule.EqualTo);

            case RuleToApply.NOTEQUALTO:
                return(validDateTimeDataUnit.Value != dateTimeValueRule.NotEqualTo);

            default:
                throw new NotSupportedException("The given type is not valid");
            }
        }
コード例 #2
0
        private static DateTimeDataUnit GetDateTimeDataUnit(InputDataUnit dataUnit)
        {
            if (!DateTime.TryParse(dataUnit.Value, out DateTime dateTime))
            {
                throw new Exception($"{dataUnit.Signal} : {dataUnit.Value} is not valid");
            }

            if (DateTimeDataUnit == null)
            {
                DateTimeDataUnit = new DateTimeDataUnit(dataUnit.Signal, dateTime);
            }
            else
            {
                DateTimeDataUnit.Signal = dataUnit.Signal;
                DateTimeDataUnit.Value  = dateTime;
            }
            return(DateTimeDataUnit);
        }