public static async Task WriteCollectionAsync(IEdmModel edmModel, ODataUri odataUri, IAsyncEnumerator <Object> asyncEnumerator, Stream responseStream, CancellationToken cancellationToken) { var importSegment = (OperationImportSegment)odataUri.Path.LastSegment; IEdmOperationImport operationImport = importSegment.OperationImports.Single(); Type returnType = edmModel.GetClrType(operationImport.Operation.ReturnType.Definition); IODataRequestMessage requestMessage = new Infrastructure.OeInMemoryMessage(responseStream, null); using (ODataMessageWriter messageWriter = new ODataMessageWriter(requestMessage, new ODataMessageWriterSettings() { EnableMessageStreamDisposal = false, ODataUri = odataUri }, edmModel)) { IEdmTypeReference typeRef = OeEdmClrHelper.GetEdmTypeReference(edmModel, returnType); ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(typeRef); writer.WriteStart(new ODataCollectionStart()); while (await asyncEnumerator.MoveNext(cancellationToken).ConfigureAwait(false)) { Object value = asyncEnumerator.Current; if (value != null && value.GetType().IsEnum) { value = value.ToString(); } writer.WriteItem(value); } writer.WriteEnd(); } }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(); writer.WriteStart( new ODataCollectionStart { Name = writeContext.RootElementName }); ODataProperty property = CreateProperty(graph, writeContext.RootElementName, writeContext); if (property != null) { ODataCollectionValue collectionValue = property.Value as ODataCollectionValue; foreach (object item in collectionValue.Items) { writer.WriteItem(item); } writer.WriteEnd(); writer.Flush(); } }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(); writer.WriteStart( new ODataCollectionStart { Name = writeContext.ServiceOperationName }); ODataProperty property = CreateProperty(graph, writeContext.ServiceOperationName, writeContext); if (property != null) { ODataCollectionValue collectionValue = property.Value as ODataCollectionValue; foreach (object item in collectionValue.Items) { writer.WriteItem(item); } writer.WriteEnd(); writer.Flush(); } }
public void CreateCollectionWriterWithEnumAsItemType() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmEnumTypeReference(new EdmEnumType("FakeNS", "FakeEnum"), true); var collectionWriter = writer.CreateODataCollectionWriter(entityElementType); Assert.IsNotNull(collectionWriter, "CreateODataCollectionWriter with enum item type failed."); }
public void CreateCollectionWriterWithTypeDefinitionAsItemType() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmTypeDefinitionReference(new EdmTypeDefinition("NS", "Test", EdmPrimitiveTypeKind.Int32), false); var collectionWriter = writer.CreateODataCollectionWriter(entityElementType); Assert.IsNotNull(collectionWriter, "CreateODataCollectionWriter with type definition item type failed."); }
public void CreateCollectionWriterWithEntityCollectionTypeShouldFail() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmEntityTypeReference(new EdmEntityType("Fake", "Fake"), true); Action createWriterWithEntityCollectionType = () => writer.CreateODataCollectionWriter(entityElementType); createWriterWithEntityCollectionType.ShouldThrow<ODataException>().WithMessage(Strings.ODataMessageWriter_NonCollectionType("Fake.Fake")); }
public void CreateCollectionWriterWithoutTypeShouldPassForJsonLight() { var settings = new ODataMessageWriterSettings(); settings.SetContentType(ODataFormat.Json); var writer = new ODataMessageWriter(new DummyRequestMessage(), settings, new EdmModel()); writer.CreateODataCollectionWriter(null).Should().BeOfType<ODataJsonLightCollectionWriter>(); }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(_edmItemType); writer.WriteStart( new ODataCollectionStart { Name = writeContext.RootElementName }); ODataValue value = CreateODataValue(graph, writeContext); if (value != null) { ODataCollectionValue collectionValue = value as ODataCollectionValue; Contract.Assert(value != null); foreach (object item in collectionValue.Items) { writer.WriteItem(item); } } writer.WriteEnd(); writer.Flush(); }
public void CreateCollectionWriterWithEntityCollectionTypeShouldFail() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmEntityTypeReference(new EdmEntityType("Fake", "Fake"), true); Action createWriterWithEntityCollectionType = () => writer.CreateODataCollectionWriter(entityElementType); createWriterWithEntityCollectionType.ShouldThrow <ODataException>().WithMessage(Strings.ODataMessageWriter_NonCollectionType("Fake.Fake")); }
public void CreateCollectionWriterWithEnumAsItemType() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmEnumTypeReference(new EdmEnumType("FakeNS", "FakeEnum"), true); var collectionWriter = writer.CreateODataCollectionWriter(entityElementType); Assert.True(collectionWriter != null, "CreateODataCollectionWriter with enum item type failed."); }
public void CreateCollectionWriterWithTypeDefinitionAsItemType() { var writer = new ODataMessageWriter(new DummyRequestMessage()); var entityElementType = new EdmTypeDefinitionReference(new EdmTypeDefinition("NS", "Test", EdmPrimitiveTypeKind.Int32), false); var collectionWriter = writer.CreateODataCollectionWriter(entityElementType); Assert.True(collectionWriter != null, "CreateODataCollectionWriter with type definition item type failed."); }
public void CreateCollectionWriterWithoutTypeShouldPassForJsonLight() { var settings = new ODataMessageWriterSettings(); settings.SetContentType(ODataFormat.Json); var writer = new ODataMessageWriter(new DummyRequestMessage(), settings, new EdmModel()); writer.CreateODataCollectionWriter(null).Should().BeOfType <ODataJsonLightCollectionWriter>(); }
public void TestCreateODataCollectionWriter_InJsonLight_WithoutTypeReference_Throws() { // Arrange IODataResponseMessage response = CreateResponse(); ODataMessageWriterSettings settings = CreateJsonLightSettings(); IEdmModel model = CreateModel(); using (ODataMessageWriter writer = new ODataMessageWriter(response, settings, model)) { // Act & Assert Assert.Throws<ODataException>(() => writer.CreateODataCollectionWriter()); } }
public void TestCreateODataCollectionWriter_InJsonLight_WithoutTypeReference_DoesNotThrow() { // Arrange IODataResponseMessage response = CreateResponse(); ODataMessageWriterSettings settings = CreateJsonLightSettings(); IEdmModel model = CreateModel(); using (ODataMessageWriter writer = new ODataMessageWriter(response, settings, model)) { // Act & Assert Assert.DoesNotThrow(() => writer.CreateODataCollectionWriter()); } }
public void TestCreateODataCollectionWriter_InJsonLight_WithTypeReference_DoesNotThrow() { // Arrange IODataResponseMessage response = CreateResponse(); ODataMessageWriterSettings settings = CreateJsonLightSettings(); IEdmModel model = CreateModel(); IEdmTypeReference itemTypeReference = new EdmPrimitiveTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Int32), false); using (ODataMessageWriter writer = new ODataMessageWriter(response, settings, model)) { // Act & Assert Assert.DoesNotThrow(() => writer.CreateODataCollectionWriter(itemTypeReference)); } }
public void TestCreateODataCollectionWriter_InJsonLight_WithTypeReference_DoesNotThrow() { // Arrange IODataResponseMessage response = CreateResponse(); ODataMessageWriterSettings settings = CreateJsonLightSettings(); IEdmModel model = CreateModel(); IEdmTypeReference itemTypeReference = new EdmPrimitiveTypeReference(EdmCoreModel.Instance.GetPrimitiveType(EdmPrimitiveTypeKind.Int32), false); using (ODataMessageWriter writer = new ODataMessageWriter(response, settings, model)) { // Act & Assert Assert.DoesNotThrow(() => writer.CreateODataCollectionWriter(itemTypeReference)); } }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(ElementType); WriteCollection(writer, graph, writeContext); }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(ElementType); WriteCollection(writer, graph, writeContext); }
/// <inheritdoc/> public override void WriteObject(object graph, Type type, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } IEdmTypeReference collectionType = writeContext.GetEdmType(graph, type); Contract.Assert(collectionType != null); IEdmTypeReference elementType = GetElementType(collectionType); ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(elementType); WriteCollection(writer, graph, collectionType.AsCollection(), writeContext); }
/// <inheritdoc/> public override void WriteObject(object graph, Type type, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } IEdmTypeReference collectionType = writeContext.GetEdmType(graph, type); Contract.Assert(collectionType != null); IEdmTypeReference elementType = GetElementType(collectionType); ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(elementType); WriteCollection(writer, graph, collectionType.AsCollection(), writeContext); }
public void CollectionTest() { foreach (var mimeType in this.mimeTypes) { string testMimeType = mimeType.Contains("xml") ? MimeTypes.ApplicationXml : mimeType; var settings = new ODataMessageWriterSettings() { PayloadBaseUri = this.ServiceUri }; settings.ODataUri = new ODataUri() { ServiceRoot = this.ServiceUri }; string outputWithModel = null; string outputWithoutModel = null; var responseMessageWithModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithModel.SetHeader("Content-Type", testMimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithModel, settings, WritePayloadHelper.Model)) { var odataWriter = messageWriter.CreateODataCollectionWriter(WritePayloadHelper.ContactDetailType); outputWithModel = this.WriteAndVerifyCollection(responseMessageWithModel, odataWriter, true, testMimeType); } var responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", testMimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataCollectionWriter(); outputWithoutModel = this.WriteAndVerifyCollection(responseMessageWithoutModel, odataWriter, false, testMimeType); } Assert.AreEqual(outputWithModel, outputWithoutModel); } }
/// <inheritdoc/> public override void WriteObject(object graph, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } // TODO: Feature #664 - Support JSON light (pass type reference). ODataCollectionWriter writer = messageWriter.CreateODataCollectionWriter(); writer.WriteStart( new ODataCollectionStart { Name = writeContext.RootElementName }); ODataProperty property = CreateProperty(graph, writeContext.RootElementName, writeContext); Contract.Assert(property != null); ODataCollectionValue collectionValue = property.Value as ODataCollectionValue; Contract.Assert(collectionValue != null); foreach (object item in collectionValue.Items) { writer.WriteItem(item); } writer.WriteEnd(); writer.Flush(); }
public void CollectionTest() { foreach (var mimeType in this.mimeTypes) { string testMimeType = mimeType.Contains("xml") ? MimeTypes.ApplicationXml : mimeType; var settings = new ODataMessageWriterSettings() { PayloadBaseUri = this.ServiceUri }; settings.ODataUri = new ODataUri() { ServiceRoot = this.ServiceUri }; string outputWithModel = null; string outputWithoutModel = null; var responseMessageWithModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithModel.SetHeader("Content-Type", testMimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithModel, settings, WritePayloadHelper.Model)) { var odataWriter = messageWriter.CreateODataCollectionWriter(WritePayloadHelper.ContactDetailType); outputWithModel = this.WriteAndVerifyCollection(responseMessageWithModel, odataWriter, true, testMimeType); } var responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", testMimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataCollectionWriter(); outputWithoutModel = this.WriteAndVerifyCollection(responseMessageWithoutModel, odataWriter, false, testMimeType); } Assert.AreEqual(outputWithModel, outputWithoutModel); } }
public void WriteEntryWithWrongSerializationInfo() { foreach (var mimeType in this.testMimeTypes) { var settings = new ODataMessageWriterSettings(); settings.ODataUri = new ODataUri() { ServiceRoot = this.ServiceUri }; // wrong EntitySetName for entry var responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataEntryWriter(); var entry = this.CreatePersonEntryWithoutSerializationInfo(); entry.SetSerializationInfo(new ODataFeedAndEntrySerializationInfo() { NavigationSourceName = "Parsen", NavigationSourceEntityTypeName = NameSpace + "Person" }); odataWriter.WriteStart(entry); odataWriter.WriteEnd(); var result = WritePayloadHelper.ReadStreamContent(responseMessageWithoutModel.GetStream()); Assert.IsTrue(result.Contains("Person(-5)\",\"PersonId\":-5")); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { // no metadata does not write odata.metadata Assert.IsTrue(result.Contains("$metadata#Parsen/$entity")); } } // wrong EntitySetName for feed responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataFeedWriter(); var feed = this.CreatePersonFeed(); feed.SetSerializationInfo(new ODataFeedAndEntrySerializationInfo() { NavigationSourceName = "Parsen", NavigationSourceEntityTypeName = NameSpace + "Person" }); var entry = this.CreatePersonEntryWithoutSerializationInfo(); odataWriter.WriteStart(feed); odataWriter.WriteStart(entry); odataWriter.WriteEnd(); odataWriter.WriteEnd(); var result = WritePayloadHelper.ReadStreamContent(responseMessageWithoutModel.GetStream()); Assert.IsTrue(result.Contains("Person(-5)\",\"PersonId\":-5")); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { // no metadata does not write odata.metadata Assert.IsTrue(result.Contains("$metadata#Parsen\"")); } } // wrong collection type name responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataCollectionWriter(); var collctionStart = new ODataCollectionStart() { Name = "BackupContactInfo" }; collctionStart.SetSerializationInfo(new ODataCollectionStartSerializationInfo() { CollectionTypeName = "Collection(" + NameSpace + "ContactDETAIL)" }); odataWriter.WriteStart(collctionStart); odataWriter.WriteItem( WritePayloadHelper.CreatePrimaryContactODataComplexValue()); odataWriter.WriteEnd(); var result = WritePayloadHelper.ReadStreamContent(responseMessageWithoutModel.GetStream()); Assert.IsTrue(result.Contains("value\":[{\"EmailBag\":[")); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { // no metadata does not write odata.metadata Assert.IsTrue(result.Contains("$metadata#Collection(" + NameSpace + "ContactDETAIL)")); } } // The following two cases of wrong reference link info is no longer active. The ODataEntityReferenceLinkSerializationInfo is ignored when writer writes the payload. // Consider removing them. // wrong reference link info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var link = new ODataEntityReferenceLink() { Url = new Uri(this.ServiceUri + "Order(-10)") }; messageWriter.WriteEntityReferenceLink(link); var result = WritePayloadHelper.ReadStreamContent(responseMessageWithoutModel.GetStream()); Assert.IsTrue(result.Contains(this.ServiceUri + "Order(-10)")); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { // no metadata does not write odata.context Assert.IsTrue(result.Contains("$metadata#$ref")); } } // wrong reference links info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var links = new ODataEntityReferenceLinks() { Links = new[] { new ODataEntityReferenceLink() { Url = new Uri(this.ServiceUri + "Order(-10)") } }, }; messageWriter.WriteEntityReferenceLinks(links); var result = WritePayloadHelper.ReadStreamContent(responseMessageWithoutModel.GetStream()); Assert.IsTrue(result.Contains(this.ServiceUri + "Order(-10)")); if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { // no metadata does not write odata.metadata Assert.IsTrue(result.Contains("$metadata#Collection($ref)")); } } } }
public void WriteWithoutSerializationInfo() { foreach (var mimeType in this.testMimeTypes) { var settings = new ODataMessageWriterSettings(); settings.ODataUri = new ODataUri() { ServiceRoot = this.ServiceUri }; // write entry without serialization info var responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataResourceWriter(); var entry = this.CreatePersonEntryWithoutSerializationInfo(); var expectedError = mimeType.Contains(MimeTypes.ODataParameterNoMetadata) ? null : "ODataResourceTypeContext_MetadataOrSerializationInfoMissing"; AssertThrows <ODataException>(() => odataWriter.WriteStart(entry), expectedError); } // write feed without serialization info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataResourceSetWriter(); var feed = this.CreatePersonFeed(); var entry = this.CreatePersonEntryWithoutSerializationInfo(); entry.SetSerializationInfo(new ODataResourceSerializationInfo() { NavigationSourceName = "Person", NavigationSourceEntityTypeName = NameSpace + "Person" }); var expectedError = mimeType.Contains(MimeTypes.ODataParameterNoMetadata) ? null : "ODataResourceTypeContext_MetadataOrSerializationInfoMissing"; AssertThrows <ODataException>(() => odataWriter.WriteStart(feed), expectedError); } // write collection without serialization info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataCollectionWriter(); var collectionStart = new ODataCollectionStart() { Name = "BackupContactInfo" }; var expectedError = mimeType.Contains(MimeTypes.ODataParameterNoMetadata) ? null : "ODataContextUriBuilder_TypeNameMissingForTopLevelCollection"; AssertThrows <ODataException>(() => odataWriter.WriteStart(collectionStart), expectedError); } // write a reference link without serialization info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var link = new ODataEntityReferenceLink() { Url = new Uri(this.ServiceUri + "Order(-10)") }; messageWriter.WriteEntityReferenceLink(link); // No exception is expected. Simply verify the writing succeeded. if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { Stream stream = responseMessageWithoutModel.GetStream(); Assert.IsTrue(WritePayloadHelper.ReadStreamContent(stream).Contains("$metadata#$ref")); } } // write reference links without serialization info responseMessageWithoutModel = new StreamResponseMessage(new MemoryStream()); responseMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(responseMessageWithoutModel, settings)) { var links = new ODataEntityReferenceLinks() { Links = new[] { new ODataEntityReferenceLink() { Url = new Uri(this.ServiceUri + "Order(-10)") } }, }; messageWriter.WriteEntityReferenceLinks(links); // No exception is expected. Simply verify the writing succeeded. if (!mimeType.Contains(MimeTypes.ODataParameterNoMetadata)) { Stream stream = responseMessageWithoutModel.GetStream(); Assert.IsTrue(WritePayloadHelper.ReadStreamContent(stream).Contains("$metadata#Collection($ref)")); } } // write request message containing an entry var requestMessageWithoutModel = new StreamRequestMessage(new MemoryStream(), new Uri(this.ServiceUri + "Person"), "POST"); requestMessageWithoutModel.SetHeader("Content-Type", mimeType); using (var messageWriter = new ODataMessageWriter(requestMessageWithoutModel, settings)) { var odataWriter = messageWriter.CreateODataResourceWriter(); var entry = this.CreatePersonEntryWithoutSerializationInfo(); odataWriter.WriteStart(entry); odataWriter.WriteEnd(); Stream stream = requestMessageWithoutModel.GetStream(); Assert.IsTrue(WritePayloadHelper.ReadStreamContent(stream).Contains("Person(-5)\",\"PersonId\":-5,\"Name\":\"xhsdckkeqzvlnprheujeycqrglfehtdocildrequohlffazfgtvmddyqsaxrojqxrsckohrakdxlrghgmzqnyruzu\"")); } } }