Beispiel #1
0
        public void Validate(ValidationResult result)
        {
            if (Timers == null)
            {
                Timers = new List <Timer>();
            }


            if (Inputs.Select(param => param.Key).Distinct().Count() != Inputs.Count())
            {
                result.AddUserError("Duplicate Keys found on Inputs.");
            }
            if (Attributes.Select(param => param.Key).Distinct().Count() != Attributes.Count())
            {
                result.AddUserError("Duplicate Keys found on Attributes.");
            }
            if (InputCommands.Select(param => param.Key).Distinct().Count() != InputCommands.Count())
            {
                result.AddUserError("Duplicate Keys found on Input Commands.");
            }
            if (StateMachines.Select(param => param.Key).Distinct().Count() != StateMachines.Count())
            {
                result.AddUserError("Duplicate Keys found on State Machines.");
            }
            if (OutputCommands.Select(param => param.Key).Distinct().Count() != OutputCommands.Count())
            {
                result.AddUserError("Duplicate Keys found on Output Commands.");
            }
            if (Timers.Select(param => param.Key).Distinct().Count() != Timers.Count())
            {
                result.AddUserError("Duplicate Keys found on Timers.");
            }

            foreach (var input in Inputs)
            {
                input.Validate(this, result);
            }
            foreach (var attribute in Attributes)
            {
                attribute.Validate(this, result);
            }
            foreach (var inputCommand in InputCommands)
            {
                inputCommand.Validate(this, result);
            }
            foreach (var stateMachine in StateMachines)
            {
                stateMachine.Validate(this, result);
            }
            foreach (var outputCommand in OutputCommands)
            {
                outputCommand.Validate(this, result);
            }
            foreach (var timer in Timers)
            {
                timer.Validate(this, result);
            }
        }