private List <LogKeyValueItem> GenerateContracts(List <ApiOperationSchemaMap> operationSchemaMappings)
        {
            if (operationSchemaMappings == null)
            {
                throw new ArgumentNullException(nameof(operationSchemaMappings));
            }

            var sgContractModels     = new List <SyntaxGeneratorContractModel>();
            var sgContractParameters = new List <SyntaxGeneratorContractParameter>();
            var sgContractResults    = new List <SyntaxGeneratorContractResult>();
            var sgContractInterfaces = new List <SyntaxGeneratorContractInterface>();

            foreach (var basePathSegmentName in projectOptions.BasePathSegmentNames)
            {
                var generatorModels = new SyntaxGeneratorContractModels(projectOptions, operationSchemaMappings, basePathSegmentName);
                var generatedModels = generatorModels.GenerateSyntaxTrees();
                sgContractModels.AddRange(generatedModels);

                var generatorParameters = new SyntaxGeneratorContractParameters(projectOptions, basePathSegmentName);
                var generatedParameters = generatorParameters.GenerateSyntaxTrees();
                sgContractParameters.AddRange(generatedParameters);

                var generatorResults = new SyntaxGeneratorContractResults(projectOptions, basePathSegmentName);
                var generatedResults = generatorResults.GenerateSyntaxTrees();
                sgContractResults.AddRange(generatedResults);

                var generatorInterfaces = new SyntaxGeneratorContractInterfaces(projectOptions, basePathSegmentName);
                var generatedInterfaces = generatorInterfaces.GenerateSyntaxTrees();
                sgContractInterfaces.AddRange(generatedInterfaces);
            }

            ApiGeneratorHelper.CollectMissingContractModelFromOperationSchemaMappings(
                projectOptions,
                operationSchemaMappings,
                sgContractModels);

            var logItems = new List <LogKeyValueItem>();

            foreach (var sg in sgContractModels)
            {
                logItems.Add(sg.ToFile());
            }

            foreach (var sg in sgContractParameters)
            {
                logItems.Add(sg.ToFile());
            }

            foreach (var sg in sgContractResults)
            {
                logItems.Add(sg.ToFile());
            }

            foreach (var sg in sgContractInterfaces)
            {
                logItems.Add(sg.ToFile());
            }

            return(logItems);
        }
예제 #2
0
    private void GenerateContracts(
        List <ApiOperationSchemaMap> operationSchemaMappings)
    {
        ArgumentNullException.ThrowIfNull(operationSchemaMappings);

        var sgContractModels     = new List <SyntaxGeneratorContractModel>();
        var sgContractParameters = new List <SyntaxGeneratorContractParameter>();
        var sgContractResults    = new List <SyntaxGeneratorContractResult>();
        var sgContractInterfaces = new List <SyntaxGeneratorContractInterface>();

        foreach (var basePathSegmentName in projectOptions.BasePathSegmentNames)
        {
            var generatorModels = new SyntaxGeneratorContractModels(logger, projectOptions, operationSchemaMappings, basePathSegmentName);
            var generatedModels = generatorModels.GenerateSyntaxTrees();
            sgContractModels.AddRange(generatedModels);

            var generatorParameters = new SyntaxGeneratorContractParameters(logger, projectOptions, basePathSegmentName);
            var generatedParameters = generatorParameters.GenerateSyntaxTrees();
            sgContractParameters.AddRange(generatedParameters);

            var generatorResults = new SyntaxGeneratorContractResults(logger, projectOptions, basePathSegmentName);
            var generatedResults = generatorResults.GenerateSyntaxTrees();
            sgContractResults.AddRange(generatedResults);

            var generatorInterfaces = new SyntaxGeneratorContractInterfaces(logger, projectOptions, basePathSegmentName);
            var generatedInterfaces = generatorInterfaces.GenerateSyntaxTrees();
            sgContractInterfaces.AddRange(generatedInterfaces);
        }

        ApiGeneratorHelper.CollectMissingContractModelFromOperationSchemaMappings(
            logger,
            projectOptions,
            operationSchemaMappings,
            sgContractModels);

        foreach (var sg in sgContractModels)
        {
            sg.ToFile();
        }

        foreach (var sg in sgContractParameters)
        {
            sg.ToFile();
        }

        foreach (var sg in sgContractResults)
        {
            sg.ToFile();
        }

        foreach (var sg in sgContractInterfaces)
        {
            sg.ToFile();
        }
    }
예제 #3
0
    private void GenerateContracts(
        List <ApiOperationSchemaMap> operationSchemaMappings)
    {
        ArgumentNullException.ThrowIfNull(operationSchemaMappings);

        var sgContractModels     = new List <SyntaxGeneratorContractModel>();
        var sgContractParameters = new List <SyntaxGeneratorContractParameter>();

        foreach (var basePathSegmentName in projectOptions.BasePathSegmentNames)
        {
            var generatorModels = new SyntaxGeneratorContractModels(logger, apiProjectOptions, operationSchemaMappings, basePathSegmentName);
            var generatedModels = generatorModels.GenerateSyntaxTrees();
            sgContractModels.AddRange(generatedModels);

            var generatorParameters = new SyntaxGeneratorContractParameters(logger, apiProjectOptions, basePathSegmentName);
            var generatedParameters = generatorParameters.GenerateSyntaxTrees();
            sgContractParameters.AddRange(generatedParameters);
        }

        ApiGeneratorHelper.CollectMissingContractModelFromOperationSchemaMappings(
            logger,
            apiProjectOptions,
            operationSchemaMappings,
            sgContractModels);

        foreach (var sg in sgContractModels)
        {
            sg.IsForClient  = true;
            sg.UseOwnFolder = false;
            sg.ToFile();
        }

        foreach (var sg in sgContractParameters)
        {
            sg.IsForClient  = true;
            sg.UseOwnFolder = false;
            sg.ToFile();
        }
    }