Apistry.WebApiDocumentationProvider.CreateHttpActionResponseDocumentation C# (CSharp) Method

CreateHttpActionResponseDocumentation() private method

private CreateHttpActionResponseDocumentation ( HttpActionDocumentationMetadata actionDocumentationMetadata ) : HttpActionResponseDocumentation
actionDocumentationMetadata Apistry.ApiController.HttpActionDocumentationMetadata
return Apistry.ApiController.HttpActionResponseDocumentation
        private HttpActionResponseDocumentation CreateHttpActionResponseDocumentation(HttpActionDocumentationMetadata actionDocumentationMetadata)
        {
            if (actionDocumentationMetadata.HttpActionResponseDocumentationMetadata == null)
            {
                return null;
            }

            // Set the response status code.
            HttpStatusCode statusCode = actionDocumentationMetadata.HttpActionResponseDocumentationMetadata.StatusCode;

            // Set the summary which describes the data returned by the HTTP action.
            String responseSummary = actionDocumentationMetadata.HttpActionResponseDocumentationMetadata.Summary;

            IEnumerable<PropertyDocumentation> documentedProperties = null;
            Object responseExample = null;
            Type responseType = GetResponseType(actionDocumentationMetadata.HttpActionResponseDocumentationMetadata.Type);
            if (responseType != null && _WebApiDocumentationMetadata.DtoDocumentation.ContainsKey(responseType))
            {
                DtoDocumentationMetadata dtoDocumentationMetadata = _WebApiDocumentationMetadata.DtoDocumentation[responseType];

                // Set the summary which describes the data returned by the HTTP action.
                responseSummary = responseSummary ?? dtoDocumentationMetadata.Summary;

                // Generate documentation for the response object's properties.
                documentedProperties = CreatePropertyDocumentation(dtoDocumentationMetadata, String.Empty);

                // Create an example response object.
                responseExample = actionDocumentationMetadata.HttpActionResponseDocumentationMetadata.Type.GetInterface("IEnumerable") != null ||
                   actionDocumentationMetadata.HttpActionResponseDocumentationMetadata.Type.IsArray
                       ? new[] { CreateResponseContentExample(dtoDocumentationMetadata) }
                       : CreateResponseContentExample(dtoDocumentationMetadata);
            }

            return new HttpActionResponseDocumentation(
                responseSummary,
                statusCode,
                documentedProperties ?? Enumerable.Empty<PropertyDocumentation>(),
                responseExample);
        }