private Object CreateHttpActionRequestBody(HttpActionDescriptor httpActionDescriptor)
{
var formatterParameterBinding =
httpActionDescriptor.ActionBinding
.ParameterBindings
.SingleOrDefault(binding => !binding.Descriptor.IsOptional &&
!TypeHelper.CanConvertFromString(binding.Descriptor.ParameterType) &&
binding.WillReadBody);
if (formatterParameterBinding == null)
{
return null;
}
Object requestBodyExample;
var parameterType = GetEnumerableType(formatterParameterBinding.Descriptor.ParameterType);
if (_WebApiDocumentationMetadata.DtoDocumentation.ContainsKey(parameterType))
{
var dtoDocumentationMetadata = _WebApiDocumentationMetadata.DtoDocumentation[parameterType];
requestBodyExample = CreateRequestBodyExample(httpActionDescriptor, dtoDocumentationMetadata);
}
else
{
requestBodyExample = CreateDefaultRequestBodyExample(httpActionDescriptor, parameterType);
}
return requestBodyExample;
}