public override async Task WriteBody(HttpResponse response, CancellationToken cancellationToken) { using (var writer = new JsonTextWriter(new StreamWriter(response.Body)) { CloseOutput = false }) { await _body.ToJObject(s_serializer).WriteToAsync(writer, cancellationToken); await writer.FlushAsync(cancellationToken); } }
public void Links_To_JObject(object model, Link[] links, string expectedHal, string expectedPlain) { var serializer = new JsonSerializer(); var response = new HALResponse(model) .AddLinks(links); var jObject = response.ToJObject(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expectedHal, actual); }
public void Embedded_Resource_Collections_To_JObject(object model, Dictionary <string, IEnumerable <object> > embeddedCollections, string expectedHal, string expectedPlain) { var serializer = new JsonSerializer(); var response = new HALResponse(model); response.AddEmbeddedCollections(embeddedCollections); var jObject = response.ToJObject(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expectedHal, actual); }
public void To_JObject(object model, Link linkAOne, Link linkATwo, Link linkB, string embeddedName, object[] embedded) { string expected = GetExpectedJson(false); var serializer = new JsonSerializer(); var response = new HALResponse(model) .AddLinks(linkAOne) .AddEmbeddedCollection(embeddedName, embedded); var jObject = response.ToJObject(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expected, actual); }
public void JObject_To_JObject() { string expected = GetExpectedJson(""); var personModel = PersonModel.GetTestModel(); var model = JObject.FromObject(personModel); var response = new HALResponse(model); var serializer = new JsonSerializer(); var jObject = response.ToJObject(serializer); string actual = jObject.ToString(Formatting.None); Assert.Equal(expected, actual); }
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)); }