Apistry.WebApiDocumentationProvider.CreateHttpActionRequestBody C# (CSharp) Method

CreateHttpActionRequestBody() private method

private CreateHttpActionRequestBody ( HttpActionDescriptor httpActionDescriptor ) : Object
httpActionDescriptor HttpActionDescriptor
return Object
        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;
        }