Example #1
0
        private static void ValidateNode(SequencingNodeReader nodeReader)
        {
            if (nodeReader == null)
            {
                return;
            }

            ValidateCollection(nodeReader.ExitConditionRules);           // Issue: not sure how to trap this
            ValidateCollection(nodeReader.Objectives);                   // Issue: not sure how to trap this
            ValidateCollection(nodeReader.PostConditionRules);           // Issue: not sure how to trap this
            ValidateCollection(nodeReader.PreConditionRules);            // Issue: not sure how to trap this
            ValidateCollection(nodeReader.RollupRules);                  // Issue: not sure how to trap this
            ValidateProperty(nodeReader.AttemptAbsoluteDurationLimit);   // caught BadProperties3
            ValidateProperty(nodeReader.AttemptLimit);                   // caught BadProperties2
            ValidateProperty(nodeReader.Choice);                         // caught BadProperties2
            ValidateProperty(nodeReader.ChoiceExit);                     // caught BadProperties3
            ValidateProperty(nodeReader.CompletionSetByContent);         // caught BadProperties3
            ValidateProperty(nodeReader.ConstrainChoice);                // caught BadProperties3
            ValidateProperty(nodeReader.Flow);                           // caught BadProperties2
            ValidateProperty(nodeReader.ForwardOnly);                    // caught BadProperties3
            ValidateProperty(nodeReader.MeasureSatisfactionIfActive);    // caught BadProperties3
            ValidateProperty(nodeReader.ObjectiveMeasureWeight);         // caught BadProperties3
            ValidateProperty(nodeReader.ObjectiveSetByContent);          // caught BadProperties3
            ValidateProperty(nodeReader.PreventActivation);              // caught BadProperties3
            ValidateProperty(nodeReader.RandomizationSelectCount);       // caught BadProperties3
            ValidateProperty(nodeReader.RandomizationTiming);            // caught BadProperties3
            ValidateProperty(nodeReader.ReorderChildren);                // caught BadProperties3
            ValidateProperty(nodeReader.RequiredForCompleted);           // caught BadProperties2
            ValidateProperty(nodeReader.RequiredForIncomplete);          // caught BadProperties3
            ValidateProperty(nodeReader.RequiredForNotSatisfied);        // caught BadProperties3
            ValidateProperty(nodeReader.RequiredForSatisfied);           // caught BadProperties3
            ValidateProperty(nodeReader.RollupObjectiveSatisfied);       // caught BadProperties2
            ValidateProperty(nodeReader.RollupProgressCompletion);       // caught BadProperties3
            ValidateProperty(nodeReader.SelectionTiming);                // caught BadProperties3
            ValidateProperty(nodeReader.Tracked);                        // caught BadProperties3
            ValidateProperty(nodeReader.UseCurrentAttemptObjectiveInfo); // caught BadProperties3
            ValidateProperty(nodeReader.UseCurrentAttemptProgressInfo);  // caught BadProperties3
        }
Example #2
0
 /// <summary>
 /// Builds a sequencing node with the default rollup rules, for use in cases where a rollup rule is not
 /// specified.
 /// </summary>
 /// <returns></returns>
 static private ReadOnlyCollection<SequencingRollupRuleNodeReader> GetDefaultRollupRules()
 {
     if(s_defaultRules == null)
     {
         XmlDocument doc = new XmlDocument();
         doc.LoadXml(
             "<sequencing xmlns=\"http://www.imsglobal.org/xsd/imsss\">" +
                 "<rollupRules>" +
                     "<rollupRule childActivitySet=\"all\">" +
                         "<rollupConditions>" +
                             "<rollupCondition condition=\"completed\"/>" +
                         "</rollupConditions>" +
                         "<rollupAction action=\"completed\"/>" +
                     "</rollupRule>" +
                     "<rollupRule childActivitySet=\"all\">" +
                         "<rollupConditions conditionCombination=\"any\">" +
                             "<rollupCondition condition=\"attempted\"/>" +
                             "<rollupCondition condition=\"completed\" operator=\"not\"/>" +
                         "</rollupConditions>" +
                         "<rollupAction action=\"incomplete\"/>" +
                     "</rollupRule>" +
                     "<rollupRule childActivitySet=\"all\">" +
                         "<rollupConditions>" +
                             "<rollupCondition condition=\"satisfied\"/>" +
                         "</rollupConditions>" +
                         "<rollupAction action=\"satisfied\"/>" +
                     "</rollupRule>" +
                     "<rollupRule childActivitySet=\"all\">" +
                         "<rollupConditions conditionCombination=\"any\">" +
                             "<rollupCondition condition=\"attempted\"/>" +
                             "<rollupCondition condition=\"satisfied\" operator=\"not\"/>" +
                         "</rollupConditions>" +
                         "<rollupAction action=\"notSatisfied\"/>" +
                     "</rollupRule>" +
                 "</rollupRules>" +
             "</sequencing>");
         XPathNavigator nav = doc.CreateNavigator();
         nav.MoveToChild("sequencing", "http://www.imsglobal.org/xsd/imsss");
         SequencingNodeReader seq = new SequencingNodeReader(nav, new ManifestReaderSettings(false, false),
             new PackageValidatorSettings(ValidationBehavior.Enforce, ValidationBehavior.None, ValidationBehavior.None, ValidationBehavior.None), false, null);
         s_defaultRules = seq.RollupRules;
     }
     return s_defaultRules;
 }