示例#1
0
        public void Links_To_ToPlainResponse(object model, Link[] links, string expectedHal, string expectedPlain)
        {
            var serializer = new JsonSerializer();

            var response = new HALResponse(model)
                           .AddLinks(links);

            var jObject = response.ToPlainResponse(serializer);

            string actual = jObject.ToString(Formatting.None);

            Assert.Equal(expectedPlain, actual);
        }
示例#2
0
        public void Embedded_Resource_To_ToPlainResponse(object model, Dictionary <string, object> embeddedResources, string expectedHal, string expectedPlain)
        {
            var serializer = new JsonSerializer();

            var response = new HALResponse(model);

            response.AddEmbeddedResources(embeddedResources);

            var jObject = response.ToPlainResponse(serializer);

            string actual = jObject.ToString(Formatting.None);

            Assert.Equal(expectedPlain, actual);
        }
示例#3
0
        public override Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content, TransportContext transportContext)
        {
            // If it is a HAL response but set to application/json - convert to a plain response
            HALResponse halResponse = null;

            if (TryGetHalResponse(type, value, out halResponse))
            {
                var serializer = this.CreateJsonSerializer();

                string mediaType = content.Headers.ContentType.MediaType;
                if (!halResponse.Config.ForceHAL && (jsonMediaTypes.Contains(mediaType) || mediaType == JsonMediaTypeFormatter.DefaultMediaType.MediaType))
                {
                    value = halResponse.ToPlainResponse(serializer);
                }
                else
                {
                    value = halResponse.ToJObject(serializer);
                }
            }

            return(base.WriteToStreamAsync(type, value, writeStream, content, transportContext));
        }