Пример #1
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();
        }
Пример #2
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();
        }
Пример #3
0
 /// <summary>Initializes a new instance of the <see cref="CSharpTemplateModelBase"/> class.</summary>
 /// <param name="controllerName">Name of the controller.</param>
 /// <param name="settings">The settings.</param>
 protected CSharpTemplateModelBase(string controllerName, CSharpGeneratorBaseSettings settings)
 {
     _controllerName = controllerName;
     _settings       = settings;
 }
Пример #4
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)
 {
 }
Пример #5
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;
 }