/// <summary> /// Generates code files for each data object in the array using each template /// </summary> /// <param name="Data"></param> /// <returns></returns> public CodeFiles GenerateCode(TemplateData[] Data) { CodeFiles master = new CodeFiles(); foreach (TemplateData data in Data) { CodeFiles files = GenerateCode(data); master.Merge(files); } return master; }
/// <summary> /// Generates code files for the data object using each template /// </summary> /// <param name="Data"></param> /// <returns></returns> public CodeFiles GenerateCode(TemplateData Data) { CodeFiles result = new CodeFiles(); GenerationEventArgs e = new GenerationEventArgs() { DataObjectName = Data.DataContainerName }; string type = Data.DataContainer.IsView ? "view" : "table"; // generate code files for each template foreach (Template template in _templates.Where(t => t.IsInclude == false)) { // only run templates for the right type of data object (ie. view or table) if (template.For.Contains(type)) { TemplateParser parser = new TemplateParser(template, Data, this); CodeFile[] files = parser.ParseTemplate(); foreach (CodeFile file in files) result.AddCodeFile(file); e.TemplatesApplied.Add(template.FileName); e.ParsingErrors.AddRange(parser.Exceptions); } // trigger the generated event OnCodeGenerated(e); } // merge in data common and safe reader result.Merge(GetDALCommonFiles(Data.RootNamespace)); return result; }