示例#1
0
        private static StaticCourse LoadCourse(TemplateLoader templateLoader, XElement courseElement,
                                               string parentScoreTemplate, string parentLevelTemplates, string parentCreditsStr)
        {
            string courseName = XmlHelper.GetAttributeValue(courseElement, "name");

            string scoreTemplate = XmlHelper.GetAttributeValue(courseElement, "scores") ?? parentScoreTemplate;

            if (scoreTemplate == null)
            {
                throw XmlHelper.CreateException(courseElement, "Unspecified score template");
            }

            string courseTemplates = XmlHelper.GetAttributeValue(courseElement, "levels") ?? parentLevelTemplates;

            if (courseTemplates == null)
            {
                throw XmlHelper.CreateException(courseElement, "Unspecified level template");
            }

            string creditsStr = XmlHelper.GetAttributeValue(courseElement, "credits") ?? parentCreditsStr;

            if (creditsStr == null)
            {
                throw XmlHelper.CreateException(courseElement, "Unspecified credits value");
            }

            double credits;

            if (!StringParser.TryParseDoubleStrict(creditsStr, out credits) || credits < 0)
            {
                throw XmlHelper.CreateException(courseElement, "Invalid credits value: " + creditsStr);
            }

            LevelGroup[] groups     = templateLoader.BuildLevels(courseTemplates);
            ScoreTable   scoreTable = templateLoader.BuildScoreTable(scoreTemplate);

            return(new StaticCourse(courseName, credits, groups, scoreTable));
        }
示例#2
0
        private static StaticCourse LoadCourse(TemplateLoader templateLoader, XElement courseElement,
            string parentScoreTemplate, string parentLevelTemplates, string parentCreditsStr)
        {
            string courseName = XmlHelper.GetAttributeValue(courseElement, "name");

            string scoreTemplate = XmlHelper.GetAttributeValue(courseElement, "scores") ?? parentScoreTemplate;
            if (scoreTemplate == null)
                throw XmlHelper.CreateException(courseElement, "Unspecified score template");

            string courseTemplates = XmlHelper.GetAttributeValue(courseElement, "levels") ?? parentLevelTemplates;
            if (courseTemplates == null)
                throw XmlHelper.CreateException(courseElement, "Unspecified level template");

            string creditsStr = XmlHelper.GetAttributeValue(courseElement, "credits") ?? parentCreditsStr;
            if (creditsStr == null)
                throw XmlHelper.CreateException(courseElement, "Unspecified credits value");

            double credits;
            if (!StringParser.TryParseDoubleStrict(creditsStr, out credits) || credits < 0)
                throw XmlHelper.CreateException(courseElement, "Invalid credits value: " + creditsStr);

            LevelGroup[] groups = templateLoader.BuildLevels(courseTemplates);
            ScoreTable scoreTable = templateLoader.BuildScoreTable(scoreTemplate);
            return new StaticCourse(courseName, credits, groups, scoreTable);
        }