예제 #1
0
        /// <summary>
        /// OpenApi描述
        /// </summary>
        /// <param name="document">Swagger文档</param>
        public OpenApiDoc(OpenApiDocument document)
        {
            this.Document = document;
            this.Settings = new HttpApiSettings();

            this.resolver = CSharpGeneratorBase
                            .CreateResolverWithExceptionSchema(this.Settings.CSharpGeneratorSettings, document);
        }
 /// <summary>Initializes a new instance of the <see cref="CSharpRefitOperationModel" /> class.</summary>
 /// <param name="operation">The operation.</param>
 /// <param name="settings">The settings.</param>
 /// <param name="generator">The generator.</param>
 /// <param name="resolver">The resolver.</param>
 public CSharpRefitOperationModel(OpenApiOperation operation, CSharpRefitGeneratorSettings settings,
                                  CSharpRefitGenerator generator, CSharpTypeResolver resolver)
     : base(operation, settings, generator, resolver)
 {
     _operation = operation;
     _generator = generator;
     _resolver  = resolver;
     _settings  = settings;
 }
예제 #3
0
        /// <summary>Initializes a new instance of the <see cref="CSharpOperationModel" /> class.</summary>
        /// <param name="operation">The operation.</param>
        /// <param name="settings">The settings.</param>
        /// <param name="generator">The generator.</param>
        /// <param name="resolver">The resolver.</param>
        public CSharpOperationModel(
            OpenApiOperation operation,
            CSharpGeneratorBaseSettings settings,
            CSharpGeneratorBase generator,
            CSharpTypeResolver resolver)
            : base(resolver.ExceptionSchema, operation, resolver, generator, settings)
        {
            _settings  = settings;
            _operation = operation;
            _generator = generator;
            _resolver  = resolver;

            var parameters = GetActualParameters();

            if (settings.GenerateOptionalParameters)
            {
                // TODO: Move to CSharpControllerOperationModel
                if (generator is CSharpControllerGenerator)
                {
                    parameters = parameters
                                 .OrderBy(p => p.Position ?? 0)
                                 .OrderBy(p => !p.IsRequired)
                                 .ThenBy(p => p.Default == null).ToList();
                }
                else
                {
                    parameters = parameters
                                 .OrderBy(p => p.Position ?? 0)
                                 .OrderBy(p => !p.IsRequired)
                                 .ToList();
                }
            }

            Parameters = parameters
                         .Select(parameter =>
                                 new CSharpParameterModel(
                                     parameter.Name,
                                     GetParameterVariableName(parameter, _operation.Parameters),
                                     GetParameterVariableIdentifier(parameter, _operation.Parameters),
                                     ResolveParameterType(parameter), parameter, parameters,
                                     _settings.CodeGeneratorSettings,
                                     _generator,
                                     _resolver))
                         .ToList();
        }
예제 #4
0
        /// <summary>Initializes a new instance of the <see cref="CSharpFileTemplateModel" /> class.</summary>
        /// <param name="clientTypes">The client types.</param>
        /// <param name="dtoTypes">The DTO types.</param>
        /// <param name="outputType">Type of the output.</param>
        /// <param name="document">The Swagger document.</param>
        /// <param name="settings">The settings.</param>
        /// <param name="generator">The client generator base.</param>
        /// <param name="resolver">The resolver.</param>
        public CSharpFileTemplateModel(
            IEnumerable <CodeArtifact> clientTypes,
            IEnumerable <CodeArtifact> dtoTypes,
            ClientGeneratorOutputType outputType,
            OpenApiDocument document,
            CSharpGeneratorBaseSettings settings,
            CSharpGeneratorBase generator,
            CSharpTypeResolver resolver)
        {
            _outputType = outputType;
            _document   = document;
            _generator  = generator;
            _settings   = settings;
            _resolver   = resolver;
            _clientCode = clientTypes.Concatenate();

            Classes = dtoTypes.Concatenate();
        }
예제 #5
0
 /// <summary>
 /// WebApiClient的请求方法数据模型
 /// </summary>
 /// <param name="operation">Swagger操作</param>
 /// <param name="settings">设置项</param>
 /// <param name="generator">代码生成器</param>
 /// <param name="resolver">语法解析器</param>
 public HttpApiMethod(OpenApiOperation operation, CSharpGeneratorBaseSettings settings, CSharpGeneratorBase generator, CSharpTypeResolver resolver)
     : base(operation, settings, generator, resolver)
 {
 }
예제 #6
0
 /// <summary>
 /// WebApiClient的请求方法数据模型
 /// </summary>
 /// <param name="operation">Swagger操作</param>
 /// <param name="settings">设置项</param>
 /// <param name="generator">代码生成器</param>
 /// <param name="resolver">语法解析器</param>
 /// <param name="settingsTaskReturnType"></param>
 public HttpApiMethod(OpenApiOperation operation, CSharpGeneratorBaseSettings settings,
                      CSharpGeneratorBase generator, CSharpTypeResolver resolver, string settingsTaskReturnType)
     : base(operation, settings, generator, resolver)
 {
     _settingsTaskReturnType = settingsTaskReturnType;
 }