コード例 #1
0
        public static void CreateAllFiles(RuleToFunctorParser rfp, List <ActiveRuleValidity> arv, int UKPRN, string folder, uint scale)
        {
            int ukprn = UKPRN;
            List <FileRuleLearner> allLearners = new List <FileRuleLearner>(1000);
            var filePrepsrequired = rfp.FilePreparationDateRequiredToRules(arv);

            if (filePrepsrequired[FilePreparationDateRequired.December].Count > 0 &&
                filePrepsrequired[FilePreparationDateRequired.January].Count > 0)
            {
                List <string> fpdrRules = new List <string>(filePrepsrequired[FilePreparationDateRequired.December].Count + filePrepsrequired[FilePreparationDateRequired.None].Count);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.December]);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.None]);
                XmlGenerator.CreateXMLFile(FilePreparationDateRequired.December, arv.Where(s => fpdrRules.Contains(s.RuleName)), rfp, ukprn, folder, scale, allLearners);
                fpdrRules.Clear();
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.January]);
                XmlGenerator.CreateXMLFile(FilePreparationDateRequired.January, arv, rfp, ukprn, folder, scale, allLearners);
            }
            else if (filePrepsrequired[FilePreparationDateRequired.December].Count > 0)
            {
                List <string> fpdrRules = new List <string>(filePrepsrequired[FilePreparationDateRequired.December].Count + filePrepsrequired[FilePreparationDateRequired.None].Count);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.December]);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.None]);
                XmlGenerator.CreateXMLFile(FilePreparationDateRequired.December, arv, rfp, ukprn, folder, scale, allLearners);
            }
            else
            {
                List <string> fpdrRules = new List <string>(filePrepsrequired[FilePreparationDateRequired.January].Count + filePrepsrequired[FilePreparationDateRequired.None].Count);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.January]);
                fpdrRules.AddRange(filePrepsrequired[FilePreparationDateRequired.None]);
                XmlGenerator.CreateXMLFile(FilePreparationDateRequired.January, arv, rfp, ukprn, folder, scale, allLearners);
            }

            OutputControlFile(folder, allLearners);
        }
コード例 #2
0
        public static void CreateXMLFile(FilePreparationDateRequired dateRequired, IEnumerable <ActiveRuleValidity> ruleNames, RuleToFunctorParser rfp, int UKPRN, string folder, uint scale, List <FileRuleLearner> allLearners)
        {
            XmlGenerator xml          = new XmlGenerator(rfp, UKPRN);
            int          learnerIndex = 0;
            long         ULNIndex     = 0;

            foreach (var arv in ruleNames)
            {
                for (uint i = 0; i != scale; ++i)
                {
                    learnerIndex += xml.GenerateRequiredLearnersAndProgression(arv.RuleName, arv.Valid, learnerIndex, ref ULNIndex);
                }
            }

            foreach (XmlTriplet trip in xml._triplets)
            {
                xml.PopulateHeaders(dateRequired, trip);
                xml.WriteFile(folder, (int)dateRequired, trip);
                allLearners.AddRange(trip.FileRuleLearners);
            }
        }