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); }
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); } }