public async Task ExecutePreview()

in src/Microsoft.Atlas.CommandLine/Commands/SwaggerCommands.cs [30:71]


        public async Task<int> ExecutePreview()
        {
            var specsUrl = Specs.Required();
            var specsJson = await new HttpClient().GetStringAsync(specsUrl);
            var specs = _serializers.YamlDeserializer.Deserialize<Swagger.Models.SwaggerDocument>(specsJson);

            var refParameters = specs.parameters.ToDictionary(p => $"#/parameters/{p.Key}", p => p.Value);

            foreach (var pathEntry in specs.paths)
            {
                var path = pathEntry.Key;
                var pathItem = pathEntry.Value;

                for (var index = 0; index < pathItem.parameters.Count(); ++index)
                {
                    if (pathItem.parameters[index].@ref != null)
                    {
                        pathItem.parameters[index] = refParameters[pathItem.parameters[index].@ref];
                    }
                }

                foreach (var operationEntry in pathEntry.Value.operations)
                {
                    var context = new Swagger.GenerateSingleRequestDefinitionContext
                    {
                        SwaggerDocument = specs,
                        Path = pathEntry,
                        Operation = operationEntry,
                        SwaggerReference = new Blueprints.Models.SwaggerReference
                        {
                            target = "api/azure",
                        },
                    };
                    var generator = new Swagger.RequestGenerator(new YamlSerializers());
                    generator.GenerateSingleRequestDefinition(context);
                    Console.WriteLine(context.GeneratedPath);
                    Console.WriteLine(context.GeneratedContent);
                }
            }

            return 0;
        }