From 8dbcd9e89c16f0ead35433e11cd7c613bc609adf Mon Sep 17 00:00:00 2001 From: Martin Machacek <machacek@edhouse.cz> Date: Thu, 30 May 2024 12:50:17 +0200 Subject: [PATCH] When MultipartBody is serialized the values are generated with CRLF --- CHANGELOG.md | 7 ++++++- src/Microsoft.Kiota.Abstractions.csproj | 2 +- src/MultipartBody.cs | 24 ++++++++++++------------ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5777bd06..2e48571c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.9.4] - 2024-05-31 + +### Changed + +- Fix MultipartBody serialization + ## [1.9.3] - 2024-05-28 ### Changed - Fix time formatting for other cultures. -- Fix MultipartBody serialization ## [1.9.2] - 2024-05-24 diff --git a/src/Microsoft.Kiota.Abstractions.csproj b/src/Microsoft.Kiota.Abstractions.csproj index d4365c58..6d4a9f69 100644 --- a/src/Microsoft.Kiota.Abstractions.csproj +++ b/src/Microsoft.Kiota.Abstractions.csproj @@ -15,7 +15,7 @@ <PackageProjectUrl>https://aka.ms/kiota/docs</PackageProjectUrl> <EmbedUntrackedSources>true</EmbedUntrackedSources> <Deterministic>true</Deterministic> - <VersionPrefix>1.9.3</VersionPrefix> + <VersionPrefix>1.9.4</VersionPrefix> <VersionSuffix></VersionSuffix> <GeneratePackageOnBuild>true</GeneratePackageOnBuild> <SignAssembly>false</SignAssembly> diff --git a/src/MultipartBody.cs b/src/MultipartBody.cs index 6ced3fb1..c785cccb 100644 --- a/src/MultipartBody.cs +++ b/src/MultipartBody.cs @@ -139,23 +139,13 @@ public void Serialize(ISerializationWriter writer) { using var partWriter = RequestAdapter.SerializationWriterFactory.GetSerializationWriter(part.ContentType); partWriter.WriteObjectValue(string.Empty, parsable); - using var partContent = partWriter.GetSerializedContent(); - if(partContent.CanSeek) - partContent.Seek(0, SeekOrigin.Begin); - using var ms = new MemoryStream(); - partContent.CopyTo(ms); - writer.WriteByteArrayValue(string.Empty, ms.ToArray()); + WriteSerializedContent(writer, partWriter); } else if(part.Content is string currentString) { using var partWriter = RequestAdapter.SerializationWriterFactory.GetSerializationWriter(part.ContentType); partWriter.WriteStringValue(string.Empty, currentString); - using var partContent = partWriter.GetSerializedContent(); - if(partContent.CanSeek) - partContent.Seek(0, SeekOrigin.Begin); - using var ms = new MemoryStream(); - partContent.CopyTo(ms); - writer.WriteByteArrayValue(string.Empty, ms.ToArray()); + WriteSerializedContent(writer, partWriter); } else if(part.Content is MemoryStream originalMemoryStream) { @@ -191,6 +181,16 @@ private void AddNewLine(ISerializationWriter writer) writer.WriteStringValue(string.Empty, string.Empty); } + private void WriteSerializedContent(ISerializationWriter writer, ISerializationWriter partWriter) + { + using var partContent = partWriter.GetSerializedContent(); + if(partContent.CanSeek) + partContent.Seek(0, SeekOrigin.Begin); + using var ms = new MemoryStream(); + partContent.CopyTo(ms); + writer.WriteByteArrayValue(string.Empty, ms.ToArray()); + } + private class Part { public Part(string name, object content, string contentType, string? fileName)