Skip to content

Commit

Permalink
[BUG][csharp-netcore] Fix Multi Files for the same FormField (#11132) (
Browse files Browse the repository at this point in the history
…#11259)

* [BUG][csharp-netcore] Fix Multi Files for the some FormField  (#11132)

Make FileParamerts a Multimap to enable sending more than one file with the same key.

* update documentation for csharp-netcore
  • Loading branch information
joaocmendes committed Jan 11, 2022
1 parent de036e2 commit b05faef
Show file tree
Hide file tree
Showing 20 changed files with 104 additions and 76 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,15 @@ namespace {{packageName}}.Client
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ namespace {{packageName}}.Client
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }
/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -59,7 +59,7 @@ namespace {{packageName}}.Client
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,10 +278,12 @@ namespace {{packageName}}.Client
{
foreach (var fileParam in options.FileParameters)
{
var content = new StreamContent(fileParam.Value.Content);
content.Headers.ContentType = new MediaTypeHeaderValue(fileParam.Value.ContentType);
multipartContent.Add(content, fileParam.Key,
fileParam.Value.Name);
foreach (var file in fileParam.Value)
{
var content = new StreamContent(file.Content);
content.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
multipartContent.Add(content, fileParam.Key, file.Name);
}
}
}
return multipartContent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ namespace {{packageName}}.Client
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, FileParameter> FileParameters { get; set; }
public Multimap<string, FileParameter> FileParameters { get; set; }
/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -59,7 +59,7 @@ namespace {{packageName}}.Client
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, FileParameter>();
FileParameters = new Multimap<string, FileParameter>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,10 +277,12 @@ HttpContent PrepareMultipartFormDataContent(RequestOptions options)
{
foreach (var fileParam in options.FileParameters)
{
var content = new StreamContent(fileParam.Value.Content);
content.Headers.ContentType = new MediaTypeHeaderValue(fileParam.Value.ContentType);
multipartContent.Add(content, fileParam.Key,
fileParam.Value.Name);
foreach (var file in fileParam.Value)
{
var content = new StreamContent(file.Content);
content.Headers.ContentType = new MediaTypeHeaderValue(file.ContentType);
multipartContent.Add(content, fileParam.Key, file.Name);
}
}
}
return multipartContent;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, FileParameter> FileParameters { get; set; }
public Multimap<string, FileParameter> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, FileParameter>();
FileParameters = new Multimap<string, FileParameter>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,12 +371,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,15 @@ private RestRequest NewRequest(
{
foreach (var fileParam in options.FileParameters)
{
var bytes = ClientUtils.ReadAsBytes(fileParam.Value);
var fileStream = fileParam.Value as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
foreach (var file in fileParam.Value)
{
var bytes = ClientUtils.ReadAsBytes(file);
var fileStream = file as FileStream;
if (fileStream != null)
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, System.IO.Path.GetFileName(fileStream.Name)));
else
request.Files.Add(FileParameter.Create(fileParam.Key, bytes, "no_file_name_provided"));
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class RequestOptions
/// <summary>
/// File parameters to be sent along with the request.
/// </summary>
public Dictionary<string, Stream> FileParameters { get; set; }
public Multimap<string, Stream> FileParameters { get; set; }

/// <summary>
/// Cookies to be sent along with the request.
Expand All @@ -67,7 +67,7 @@ public RequestOptions()
QueryParameters = new Multimap<string, string>();
HeaderParameters = new Multimap<string, string>();
FormParameters = new Dictionary<string, string>();
FileParameters = new Dictionary<string, Stream>();
FileParameters = new Multimap<string, Stream>();
Cookies = new List<Cookie>();
}
}
Expand Down

0 comments on commit b05faef

Please sign in to comment.