Beispiel #1
0
        public static void GenerateSpecifications(SpecificationGeneratorSettings settings)
        {
            Console.WriteLine("Generating Azure specifications...");
            Console.WriteLine($"Max depth: {settings.MaxDepth}");
            Console.WriteLine($"Min depth for category: {settings.MinDepthForCategory}");
            Console.WriteLine($"Min sub tasks for category: {settings.MinSubTasksForCategory}");
            Console.WriteLine($"Generate extensions: {settings.GenerateExtension}");
            Console.WriteLine();

            Console.WriteLine("Parsing ToC...");
            var tocs         = DefinitionLoader.LoadTablesOfContent(settings.DefinitionFolder);
            var referenceToc = tocs.Single(x => x.Uid == "az");

            Console.WriteLine($"ToC parsed. Commands found: {referenceToc.TotalCommandsInTable}.");

            Console.WriteLine("Parsing definitions...");
            var definitions = DefinitionLoader.LoadCommandDefinitions(settings.DefinitionFolder, settings.Reference);
            var generator   = new SpecificationGenerator(settings, definitions, referenceToc);

            Console.WriteLine("Generating specifications...");
            var tools = generator.Generate(out var categories).ToList();

            SpecificationWriter.Write(settings.OutputFolder,
                                      tools,
                                      categories.ToArray(),
                                      settings.BaseNamespace);

            Console.WriteLine();
            Console.WriteLine("Generation finished.");
            Console.WriteLine($"Created Tools: {tools.Count}");
            Console.WriteLine($"Created Tasks: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.Tasks.Count)}");
            Console.WriteLine($"Created Data Classes: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.DataClasses.Count)}");
            Console.WriteLine($"Created Enumerations: {tools.Aggregate(seed: 0, func: (x, tool) => x + tool.Tool.Enumerations.Count)}");
        }
Beispiel #2
0
 private SpecificationGenerator(
     SpecificationGeneratorSettings settings,
     IReadOnlyCollection <Definition> definitions,
     TableOfContentsEntry referenceToc)
 {
     _settings    = settings;
     _definitions = definitions;
     _toc         = referenceToc;
 }