Exemplo n.º 1
0
        public override ITagadaBuilder DeleteAsync <TCommand, TResult>(string path, Func <TCommand, Task <TResult> > function)
        {
            base.DeleteAsync(path, function);

            Operation addSwaggerOperation(ISchemaRegistry schemaRegistry)
            {
                string topPath = TopPath.Trim('/');
                var    operationSplittedNames = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
                string operationName          = operationSplittedNames[0];

                var commandProperties   = CachedTypes.GetTypeProperties(typeof(TCommand));
                var operationParameters = _getNonBodyParametersFromQueryCommand(schemaRegistry, commandProperties, operationSplittedNames);

                return(new Operation
                {
                    OperationId = topPath.Capitalize() +
                                  string.Join("", operationSplittedNames.Select(n => GetOperationPartName(n))) +
                                  "Delete",
                    Tags = new List <string> {
                        operationName
                    },
                    Consumes = new List <string>(),
                    Produces = _producesJson,
                    Parameters = operationParameters.Cast <IParameter>().ToList(),
                    Responses = _createSuccessResponses(schemaRegistry, function.Method.ReturnType)
                });
            }

            AddSwaggerOperationFunc(path, SwaggerOperationMethod.Delete, addSwaggerOperation);

            return(this);
        }