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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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));
        }
Exemple #4
0
        /// <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));
        }