/// <summary> /// Writes the start boundary for an operation. This is either the batch or the changeset boundary. /// </summary> private void WriteStartBoundaryForOperation() { if (this.changeSetBoundary == null) { ODataMultipartMixedBatchWriterUtils.WriteStartBoundary(this.RawOutputContext.TextWriter, this.batchBoundary, !this.batchStartBoundaryWritten); this.batchStartBoundaryWritten = true; } else { ODataMultipartMixedBatchWriterUtils.WriteStartBoundary(this.RawOutputContext.TextWriter, this.changeSetBoundary, !this.changesetStartBoundaryWritten); this.changesetStartBoundaryWritten = true; } }
/// <summary> /// Starts a new changeset - implementation of the actual functionality. /// </summary> /// <param name="changeSetId">The value for changeset boundary for multipart batch.</param> protected override void WriteStartChangesetImplementation(string changeSetId) { Debug.Assert(changeSetId != null, "changeSetId != null"); // write pending message data (headers, response line) for a previously unclosed message/request this.WritePendingMessageData(true); this.SetState(BatchWriterState.ChangesetStarted); Debug.Assert(this.changeSetBoundary == null, "this.changeSetBoundary == null"); this.changeSetBoundary = ODataMultipartMixedBatchWriterUtils.CreateChangeSetBoundary(this.RawOutputContext.WritingResponse, changeSetId); // write the boundary string ODataMultipartMixedBatchWriterUtils.WriteStartBoundary(this.RawOutputContext.TextWriter, this.batchBoundary, !this.batchStartBoundaryWritten); this.batchStartBoundaryWritten = true; // write the change set headers ODataMultipartMixedBatchWriterUtils.WriteChangeSetPreamble(this.RawOutputContext.TextWriter, this.changeSetBoundary); this.changesetStartBoundaryWritten = false; }