/// <summary> /// Deserializes the given request's binary payload into a batch payload /// </summary> /// <param name="request">The request to deserialize</param> /// <returns>The deserialized batch request payload</returns> public BatchRequestPayload DeserializeBatchRequest(HttpRequestData request) { var encoding = request.GetEncodingFromHeadersOrDefault(); MultipartMimeData <MimePartData <byte[]> > split; ExceptionUtilities.Assert(TrySplitMimePart(request, encoding, out split), "Failed to split batch response body"); var batchRequest = new BatchRequestPayload(); foreach (var subPart in split.ToList()) { MultipartMimeData <MimePartData <byte[]> > splitChangeset; if (TrySplitMimePart(subPart, encoding, out splitChangeset)) { var changeset = new BatchRequestChangeset(); changeset.Headers.AddRange(splitChangeset.Headers); foreach (var changesetPart in splitChangeset) { if (changesetPart.Body != null) { if (changesetPart.Body.Length > 0) { changeset.Add(this.BuildRequestFromPart(changesetPart, encoding)); } } } batchRequest.Add(changeset); } else { batchRequest.Add(this.BuildRequestFromPart(subPart, encoding)); } } return(batchRequest); }
/// <summary> /// Deserializes the given request's binary payload into a batch payload /// </summary> /// <param name="request">The request to deserialize</param> /// <returns>The deserialized batch request payload</returns> public BatchRequestPayload DeserializeBatchRequest(HttpRequestData request) { var encoding = request.GetEncodingFromHeadersOrDefault(); MultipartMimeData<MimePartData<byte[]>> split; ExceptionUtilities.Assert(TrySplitMimePart(request, encoding, out split), "Failed to split batch response body"); var batchRequest = new BatchRequestPayload(); foreach (var subPart in split.ToList()) { MultipartMimeData<MimePartData<byte[]>> splitChangeset; if (TrySplitMimePart(subPart, encoding, out splitChangeset)) { var changeset = new BatchRequestChangeset(); changeset.Headers.AddRange(splitChangeset.Headers); foreach (var changesetPart in splitChangeset) { if (changesetPart.Body != null) { if (changesetPart.Body.Length > 0) { changeset.Add(this.BuildRequestFromPart(changesetPart, encoding)); } } } batchRequest.Add(changeset); } else { batchRequest.Add(this.BuildRequestFromPart(subPart, encoding)); } } return batchRequest; }