Пример #1
0
        private static async Task <InputFormatterResult> ReadRequestBody(string sampleXml, ModelStateDictionary modelStateDictionary)
        {
            var formatter = new FhirXmlInputFormatter(new FhirXmlParser());

            var metaData           = new DefaultModelMetadata(new EmptyModelMetadataProvider(), new DefaultCompositeMetadataDetailsProvider(new IMetadataDetailsProvider[0]), new DefaultMetadataDetails(ModelMetadataIdentity.ForType(typeof(Observation)), ModelAttributes.GetAttributesForType(typeof(Observation))));
            var defaultHttpContext = new DefaultHttpContext();

            defaultHttpContext.Request.Body = new MemoryStream(Encoding.UTF8.GetBytes(sampleXml));

            var context = new InputFormatterContext(
                defaultHttpContext,
                KnownActionParameterNames.Resource,
                modelStateDictionary,
                metaData,
                Substitute.For <Func <Stream, Encoding, TextReader> >());

            return(await formatter.ReadRequestBodyAsync(context));
        }
Пример #2
0
        private bool CanRead(Type modelType, string contentType)
        {
            var formatter          = new FhirXmlInputFormatter(new FhirXmlParser());
            var modelMetadata      = Substitute.For <ModelMetadata>(ModelMetadataIdentity.ForType(modelType));
            var defaultHttpContext = new DefaultHttpContext();

            defaultHttpContext.Request.ContentType = contentType;

            var result = formatter.CanRead(
                new InputFormatterContext(
                    defaultHttpContext,
                    "model",
                    new ModelStateDictionary(),
                    modelMetadata,
                    Substitute.For <Func <Stream, Encoding, TextReader> >()));

            return(result);
        }