internal void Add(string originalRoute, MethodInfo method, Dictionary <string, List <Attribute> > methodAttr) { var parameters = method.GetParameters().ToList(); var removedParameters = GetOptionalParameters(originalRoute); var doc = _scope.XmlDocs.GetDoc(method); var operation = new Operation { Summary = doc?.Summary, Description = doc?.Remarks ?? doc?.Summary, Deprecated = methodAttr.ContainsKey(OBSOLETE_ATTRIBUTE), Parameters = parameters .Select(p => ParameterGenerator.CreateParameter(p, originalRoute, _schemaGenerator, doc)) .Where(p => !removedParameters.Contains(p.Name)) .ToList(), OperationId = GetOperationId(method), Responses = GetResponses(method, methodAttr, doc).ToDictionary(r => r.Item1, r => r.Item2) }; operation.Tags.Add((method.DeclaringType?.Name ?? "Unknown").Replace("Controller", string.Empty).ToCamelCase()); if (methodAttr.ContainsKey(TAG_ATTRIBUTE)) { operation.Tags = methodAttr[TAG_ATTRIBUTE].Cast <TagAttribute>().SelectMany(a => a.Tags).ToList(); } if (methodAttr.ContainsKey(PRODUCES_ATTRIBUTE)) { operation.Produces = methodAttr[PRODUCES_ATTRIBUTE].Cast <ProducesAttribute>() .SelectMany(a => a.ContentTypes).ToList(); } AddOperation(methodAttr, operation); }
internal void Add(MethodInfo method, Dictionary <string, List <Attribute> > methodAttr) { var parameters = method.GetParameters().ToList(); var doc = _scope.XmlDocs.GetDoc(method); var operation = new Operation { Description = doc?.Summary, Deprecated = methodAttr.ContainsKey(OBSOLETE_ATTRIBUTE), Parameters = parameters .Select(p => ParameterGenerator.CreateParameter(p, _httpPath, _schemaGenerator, doc)) .ToList(), OperationId = GetOperationId(method), Responses = GetResponses(method, methodAttr, doc).ToDictionary(r => r.Item1, r => r.Item2) }; operation.Tags.Add(method.DeclaringType.Name.Replace("Controller", string.Empty).ToCamelCase()); AddOperation(methodAttr, operation); }