예제 #1
0
        public override void GenerateTocAndYamls(string targetApiVersionDir, SplitSwaggerResult splitSwaggerResult, RestTocGroup restTocGroup)
        {
            Console.WriteLine("Starting to aggregate split result");
            var aggregateResult = Aggregate(splitSwaggerResult);

            Console.WriteLine("Starting to generate toc for aggregated result");
            GenerateToc(restTocGroup, aggregateResult);

            Console.WriteLine($"Starting to create operation yamls");
            WriteOpeartions(targetApiVersionDir, aggregateResult, restTocGroup, 1);

            Console.WriteLine($"Starting to create component yamls");
            SplitHelper.WriteComponents(targetApiVersionDir, aggregateResult.Components);
        }
예제 #2
0
 private void WriteOpeartions(string targetApiVersionDir, GraphAggregateResult aggregateResult, RestTocGroup restTocGroup, int depth)
 {
     if (restTocGroup != null)
     {
         foreach (var group in restTocGroup.Groups)
         {
             if (depth > 1)
             {
                 ResolveComponent(aggregateResult, MappingFile.ComponentPrefix + group.Key, group.Value);
             }
             WriteOpeartions(targetApiVersionDir, aggregateResult, group.Value, depth + 1);
         }
         if (restTocGroup.RestTocLeaves?.Count > 0)
         {
             var aggregateOperations = restTocGroup.RestTocLeaves.OrderBy(p => p.MainOperation.Name);
             foreach (var aggregateOperation in aggregateOperations)
             {
                 SplitHelper.WriteOperations(targetApiVersionDir, aggregateOperation, MergeOperations, MergeOperations);
             }
         }
     }
 }