static void ProcessDictionary(string name, string input, string output, Files files, string specificationVersion) { var resourcePath = "ModelCompiler.Design"; if (!String.IsNullOrEmpty(specificationVersion)) { resourcePath = $"ModelCompiler.Design.{specificationVersion}"; } TypeDictionaryValidator validator = new TypeDictionaryValidator(resourcePath); validator.Validate(input); string basePath = String.Format(@"{0}\{1}", output, name); string fileName = String.Format("Opc.Ua{0}", name); XmlSchemaGenerator generator1 = new XmlSchemaGenerator(input, output, files.TypeDictionaries, resourcePath); generator1.TypesNamespace = "http://opcfoundation.org/UA/2008/02/Types.xsd"; generator1.ServicesNamespace = "http://opcfoundation.org/UA/2008/02/Services.wsdl"; generator1.EndpointsNamespace = "http://opcfoundation.org/UA/2008/02/Endpoints.wsdl"; generator1.Generate(fileName, "Opc.Ua", name, true); string filePath = String.Format(@"{0}\Opc.Ua.Types.xsd", output); XmlSchemaValidator2 validator1 = new XmlSchemaValidator2(files.XmlSchemas); validator1.Validate(filePath); files.XmlSchemas[validator1.TargetSchema.TargetNamespace] = filePath; System.IO.File.Delete(filePath); fileName = "Opc.Ua.Types"; BinarySchemaGenerator generator2 = new BinarySchemaGenerator(input, output, files.TypeDictionaries, resourcePath); generator2.Generate(fileName, true, "http://opcfoundation.org/UA/"); filePath = String.Format(@"{0}\{1}.bsd", output, fileName); BinarySchemaValidator validator2 = new BinarySchemaValidator(files.BinarySchemas); validator2.Validate(filePath); files.BinarySchemas[validator2.Dictionary.TargetNamespace] = filePath; System.IO.File.Delete(filePath); }
static void ProcessDictionary(string name, string input, string output, Files files) { TypeDictionaryValidator validator = new TypeDictionaryValidator(); validator.Validate(input); string basePath = String.Format(@"{0}\{1}", output, name); string fileName = String.Format("Opc.Ua{0}", name); XmlSchemaGenerator generator1 = new XmlSchemaGenerator(input, output, files.TypeDictionaries); generator1.TypesNamespace = "http://opcfoundation.org/UA/2008/02/Types.xsd"; generator1.ServicesNamespace = "http://opcfoundation.org/UA/2008/02/Services.wsdl"; generator1.EndpointsNamespace = "http://opcfoundation.org/UA/2008/02/Endpoints.wsdl"; generator1.Generate(fileName, "Opc.Ua", name, true); string filePath = String.Format(@"{0}\Opc.Ua.Types.xsd", output); XmlSchemaValidator validator1 = new XmlSchemaValidator(files.XmlSchemas); validator1.Validate(filePath); files.XmlSchemas[validator1.TargetSchema.TargetNamespace] = filePath; System.IO.File.Delete(filePath); fileName = "Opc.Ua.Types"; BinarySchemaGenerator generator2 = new BinarySchemaGenerator(input, output, files.TypeDictionaries); generator2.Generate(fileName, true, "http://opcfoundation.org/UA/"); filePath = String.Format(@"{0}\{1}.bsd", output, fileName); BinarySchemaValidator validator2 = new BinarySchemaValidator(files.BinarySchemas); validator2.Validate(filePath); files.BinarySchemas[validator2.Dictionary.TargetNamespace] = filePath; System.IO.File.Delete(filePath); }
/// <summary> /// The main entry point. /// </summary> /// <param name="args">The console arguments.</param> /// <returns><b>Zero</b> indicates success; otherwise, unsuccessful.</returns> public static async Task <int> Main(string[] args) { Logger.Default = new ConsoleLogger(null); // Check for special case / internal use arguments. if (args.Length == 1) { switch (args[0].ToUpperInvariant()) { case "--GENERATEENTITYXMLSCHEMA": return(SpecialActivitiesCenter("Generate Entity XML Schema", "./Schema/codegen.entity.xsd", fn => XmlSchemaGenerator.Create <Config.Entity.CodeGenConfig>(ConfigType.Entity).Save(fn, System.Xml.Linq.SaveOptions.None))); case "--GENERATEENTITYJSONSCHEMA": return(SpecialActivitiesCenter("Generate Entity JSON Schema", "./Schema/entity.beef.json", fn => JsonSchemaGenerator.Generate <Config.Entity.CodeGenConfig>(fn, "JSON Schema for Beef Entity code-generation (https://github.com/Avanade/Beef)."))); case "--GENERATEDATABASEXMLSCHEMA": return(SpecialActivitiesCenter("Generate Database XML Schema", "./Schema/codegen.table.xsd", fn => XmlSchemaGenerator.Create <Config.Database.CodeGenConfig>(ConfigType.Database).Save(fn, System.Xml.Linq.SaveOptions.None))); case "--GENERATEDATABASEJSONSCHEMA": return(SpecialActivitiesCenter("Generate Database JSON Schema", "./Schema/database.beef.json", fn => JsonSchemaGenerator.Generate <Config.Database.CodeGenConfig>(fn, "JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef)."))); case "--GENERATEENTITYMARKDOWN": return(SpecialActivitiesCenter("Generate Entity YAML documentation markdown file(s)", "../../docs/", dn => GenerateMarkdown <Config.Entity.CodeGenConfig>(dn, ConfigType.Entity, true))); case "--GENERATEENTITYXMLMARKDOWN": return(SpecialActivitiesCenter("Generate Entity XML documentation markdown file(s)", "../../docs/", dn => GenerateMarkdown <Config.Entity.CodeGenConfig>(dn, ConfigType.Entity, false))); case "--GENERATEDATABASEMARKDOWN": return(SpecialActivitiesCenter("Generate Database YAML documentation markdown file(s)", "../../docs/", dn => GenerateMarkdown <Config.Database.CodeGenConfig>(dn, ConfigType.Database, true))); case "--GENERATEDATABASEXMLMARKDOWN": return(SpecialActivitiesCenter("Generate Database XML documentation markdown file(s)", "../../docs/", dn => GenerateMarkdown <Config.Database.CodeGenConfig>(dn, ConfigType.Database, false))); } } var a = new OnRamp.CodeGeneratorArgs().AddAssembly(typeof(CodeGenConsole).Assembly).AddAssembly(Assembly.GetCallingAssembly()); return(await new CodeGenConsole(a).RunAsync(args).ConfigureAwait(false)); }
/// <summary> /// The main entry point. /// </summary> /// <param name="args">The console arguments.</param> /// <returns>A statuc code.</returns> public static async Task <int> Main(string[] args) { if (args == null) { throw new ArgumentNullException(nameof(args)); } Logger.Default = new ColoredConsoleLogger(nameof(CodeGenConsole)); // Check for special case / internal use arguments. if (args.Length == 1) { switch (args[0].ToUpperInvariant()) { case "--GENERATEENTITYXMLSCHEMA": return(SpecialActivitiesCenter("Generate Entity XML Schema", "./Schema/codegen.entity.xsd", fn => XmlSchemaGenerator.Create <Config.Entity.CodeGenConfig>(ConfigType.Entity).Save(fn, System.Xml.Linq.SaveOptions.None))); case "--GENERATEENTITYJSONSCHEMA": return(SpecialActivitiesCenter("Generate Entity JSON Schema", "./Schema/entity.beef.json", fn => File.WriteAllText(fn, JsonSchemaGenerator.Create <Config.Entity.CodeGenConfig>("JSON Schema for Beef Entity code-generation (https://github.com/Avanade/Beef).")))); case "--GENERATEDATABASEXMLSCHEMA": return(SpecialActivitiesCenter("Generate Database XML Schema", "./Schema/codegen.table.xsd", fn => XmlSchemaGenerator.Create <Config.Database.CodeGenConfig>(ConfigType.Database).Save(fn, System.Xml.Linq.SaveOptions.None))); case "--GENERATEDATABASEJSONSCHEMA": return(SpecialActivitiesCenter("Generate Database JSON Schema", "./Schema/database.beef.json", fn => File.WriteAllText(fn, JsonSchemaGenerator.Create <Config.Database.CodeGenConfig>("JSON Schema for Beef Database code-generation (https://github.com/Avanade/Beef).")))); case "--GENERATEENTITYMARKDOWN": return(SpecialActivitiesCenter("Generate Entity YAML documentation markdown file(s)", "../../docs/", fn => SchemaMarkdownGenerator.Create <Config.Entity.CodeGenConfig>(fn, ConfigType.Entity, true))); case "--GENERATEENTITYXMLMARKDOWN": return(SpecialActivitiesCenter("Generate Entity XML documentation markdown file(s)", "../../docs/", fn => SchemaMarkdownGenerator.Create <Config.Entity.CodeGenConfig>(fn, ConfigType.Entity, false))); case "--GENERATEDATABASEMARKDOWN": return(SpecialActivitiesCenter("Generate Database YAML documentation markdown file(s)", "../../docs/", fn => SchemaMarkdownGenerator.Create <Config.Database.CodeGenConfig>(fn, ConfigType.Database, true))); case "--GENERATEDATABASEXMLMARKDOWN": return(SpecialActivitiesCenter("Generate Database XML documentation markdown file(s)", "../../docs/", fn => SchemaMarkdownGenerator.Create <Config.Database.CodeGenConfig>(fn, ConfigType.Database, false))); } } return(await CodeGenConsole.Create().RunAsync(args).ConfigureAwait(false)); }