/// <summary> /// Write payload kind to message. /// </summary> /// <param name="messageWriter">Message writer to write payload to.</param> /// <param name="payloadKind">The kind of payload we are writing.</param> /// <param name="payload">The payload to write.</param> /// <param name="model">The model used for writing the payloads.</param> /// <param name="functionImport">Function import whose parameters are to be written when the payload kind is Parameters.</param> public virtual void WriteMessage( ODataMessageWriterTestWrapper messageWriter, ODataPayloadKind payloadKind, object payload, IEdmModel model = null, IEdmOperationImport functionImport = null) { ExceptionUtilities.CheckArgumentNotNull(messageWriter, "messageReader"); switch (payloadKind) { case ODataPayloadKind.Property: messageWriter.WriteProperty((ODataProperty)payload); break; case ODataPayloadKind.Feed: this.WriteTopLevelFeed(messageWriter, (ODataFeed)payload); break; case ODataPayloadKind.Entry: this.WriteTopLevelEntry(messageWriter, (ODataEntry)payload); break; case ODataPayloadKind.Collection: this.WriteCollection(messageWriter, (ODataCollectionStart)payload); break; case ODataPayloadKind.ServiceDocument: this.WriteServiceDocument(messageWriter, (ODataServiceDocument)payload); break; case ODataPayloadKind.MetadataDocument: this.WriteMetadataDocument(messageWriter); break; case ODataPayloadKind.Error: this.WriteError(messageWriter, (ODataError)payload, true); break; case ODataPayloadKind.EntityReferenceLink: this.WriteEntityReferenceLink(messageWriter, (ODataEntityReferenceLink)payload); break; case ODataPayloadKind.EntityReferenceLinks: this.WriteEntityReferenceLinks(messageWriter, (ODataEntityReferenceLinks)payload); break; case ODataPayloadKind.Value: this.WriteValue(messageWriter, payload); break; case ODataPayloadKind.Batch: // TODO: Have to figure out product representation of batch payloads or perhaps keep it separate throw new NotSupportedException("Batch not supported in ObjectModelToMessageWriter"); case ODataPayloadKind.Parameter: this.WriteParameters(messageWriter, (ODataParameters)payload, functionImport); break; default: ExceptionUtilities.Assert(false, "The payload kind '{0}' is not yet supported by MessageToObjectModelReader.", payloadKind); break; } }