mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-08 08:26:20 +00:00
Fixed array serialization support
This commit is contained in:
parent
42f95243d9
commit
434d9e3af6
@ -341,7 +341,7 @@ namespace CryptoExchange.Net
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add the auth parameters to the uri, start with a new URI to be able to sort the parameters including the auth parameters
|
// Add the auth parameters to the uri, start with a new URI to be able to sort the parameters including the auth parameters
|
||||||
uri = uri.SetParameters(uriParameters);
|
uri = uri.SetParameters(uriParameters, arraySerialization);
|
||||||
|
|
||||||
var request = RequestFactory.Create(method, uri, requestId);
|
var request = RequestFactory.Create(method, uri, requestId);
|
||||||
request.Accept = Constants.JsonContentHeader;
|
request.Accept = Constants.JsonContentHeader;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -419,8 +420,9 @@ namespace CryptoExchange.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="parameters"></param>
|
/// <param name="parameters"></param>
|
||||||
/// <param name="baseUri"></param>
|
/// <param name="baseUri"></param>
|
||||||
|
/// <param name="arraySerialization"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static Uri SetParameters(this Uri baseUri, SortedDictionary<string, object> parameters)
|
public static Uri SetParameters(this Uri baseUri, SortedDictionary<string, object> parameters, ArrayParametersSerialization arraySerialization)
|
||||||
{
|
{
|
||||||
var uriBuilder = new UriBuilder();
|
var uriBuilder = new UriBuilder();
|
||||||
uriBuilder.Scheme = baseUri.Scheme;
|
uriBuilder.Scheme = baseUri.Scheme;
|
||||||
@ -428,7 +430,15 @@ namespace CryptoExchange.Net
|
|||||||
uriBuilder.Path = baseUri.AbsolutePath;
|
uriBuilder.Path = baseUri.AbsolutePath;
|
||||||
var httpValueCollection = HttpUtility.ParseQueryString(string.Empty);
|
var httpValueCollection = HttpUtility.ParseQueryString(string.Empty);
|
||||||
foreach (var parameter in parameters)
|
foreach (var parameter in parameters)
|
||||||
httpValueCollection.Add(parameter.Key, parameter.Value.ToString());
|
{
|
||||||
|
if(parameter.Value.GetType().IsArray)
|
||||||
|
{
|
||||||
|
foreach (var item in (object[])parameter.Value)
|
||||||
|
httpValueCollection.Add(arraySerialization == ArrayParametersSerialization.Array ? parameter.Key + "[]" : parameter.Key, item.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
httpValueCollection.Add(parameter.Key, parameter.Value.ToString());
|
||||||
|
}
|
||||||
uriBuilder.Query = httpValueCollection.ToString();
|
uriBuilder.Query = httpValueCollection.ToString();
|
||||||
return uriBuilder.Uri;
|
return uriBuilder.Uri;
|
||||||
}
|
}
|
||||||
@ -438,8 +448,9 @@ namespace CryptoExchange.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="parameters"></param>
|
/// <param name="parameters"></param>
|
||||||
/// <param name="baseUri"></param>
|
/// <param name="baseUri"></param>
|
||||||
|
/// <param name="arraySerialization"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static Uri SetParameters(this Uri baseUri, IOrderedEnumerable<KeyValuePair<string, object>> parameters)
|
public static Uri SetParameters(this Uri baseUri, IOrderedEnumerable<KeyValuePair<string, object>> parameters, ArrayParametersSerialization arraySerialization)
|
||||||
{
|
{
|
||||||
var uriBuilder = new UriBuilder();
|
var uriBuilder = new UriBuilder();
|
||||||
uriBuilder.Scheme = baseUri.Scheme;
|
uriBuilder.Scheme = baseUri.Scheme;
|
||||||
@ -447,7 +458,15 @@ namespace CryptoExchange.Net
|
|||||||
uriBuilder.Path = baseUri.AbsolutePath;
|
uriBuilder.Path = baseUri.AbsolutePath;
|
||||||
var httpValueCollection = HttpUtility.ParseQueryString(string.Empty);
|
var httpValueCollection = HttpUtility.ParseQueryString(string.Empty);
|
||||||
foreach (var parameter in parameters)
|
foreach (var parameter in parameters)
|
||||||
httpValueCollection.Add(parameter.Key, parameter.Value.ToString());
|
{
|
||||||
|
if (parameter.Value.GetType().IsArray)
|
||||||
|
{
|
||||||
|
foreach (var item in (object[])parameter.Value)
|
||||||
|
httpValueCollection.Add(arraySerialization == ArrayParametersSerialization.Array ? parameter.Key + "[]" : parameter.Key, item.ToString());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
httpValueCollection.Add(parameter.Key, parameter.Value.ToString());
|
||||||
|
}
|
||||||
uriBuilder.Query = httpValueCollection.ToString();
|
uriBuilder.Query = httpValueCollection.ToString();
|
||||||
return uriBuilder.Uri;
|
return uriBuilder.Uri;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user