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);
}