Example #1
0
        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);
        }
Example #2
0
        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);
        }