mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-09 08:56:13 +00:00
wip
This commit is contained in:
parent
9f92d86855
commit
ad3959a8e9
@ -10,7 +10,8 @@ namespace CryptoExchange.Net.Converters
|
|||||||
{
|
{
|
||||||
public abstract class SocketConverter
|
public abstract class SocketConverter
|
||||||
{
|
{
|
||||||
public abstract string[] IdFields { get; }
|
public virtual string[]? SubscriptionIdFields => null;
|
||||||
|
public abstract string[] TypeIdFields { get; }
|
||||||
|
|
||||||
public abstract Type? GetDeserializationType(Dictionary<string, string> idValues, List<MessageListener> listeners);
|
public abstract Type? GetDeserializationType(Dictionary<string, string> idValues, List<MessageListener> listeners);
|
||||||
|
|
||||||
@ -33,23 +34,43 @@ namespace CryptoExchange.Net.Converters
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var dict = new Dictionary<string, string>();
|
var typeIdDict = new Dictionary<string, string>();
|
||||||
foreach(var idField in IdFields)
|
foreach(var idField in TypeIdFields)
|
||||||
{
|
{
|
||||||
var splitTokens = idField.Split(new char[] { ':' });
|
var splitTokens = idField.Split(new char[] { ':' });
|
||||||
var accessToken = token;
|
var accessToken = token;
|
||||||
foreach (var splitToken in splitTokens)
|
foreach (var splitToken in splitTokens)
|
||||||
{
|
{
|
||||||
accessToken = accessToken[splitToken];
|
accessToken = accessToken[splitToken];
|
||||||
|
if (accessToken == null)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
dict[idField] = accessToken?.ToString();
|
typeIdDict[idField] = accessToken?.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
var resultType = GetDeserializationType(dict, listeners);
|
|
||||||
string idString = "";
|
string idString = "";
|
||||||
foreach(var item in dict)
|
if (SubscriptionIdFields != null)
|
||||||
idString += item.Value;
|
{
|
||||||
|
foreach (var idField in SubscriptionIdFields)
|
||||||
|
{
|
||||||
|
var splitTokens = idField.Split(new char[] { ':' });
|
||||||
|
var accessToken = token;
|
||||||
|
foreach (var splitToken in splitTokens)
|
||||||
|
{
|
||||||
|
accessToken = accessToken[splitToken];
|
||||||
|
if (accessToken == null)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
idString += accessToken?.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach (var item in typeIdDict)
|
||||||
|
idString += item.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var resultType = GetDeserializationType(typeIdDict, listeners);
|
||||||
return new ParsedMessage
|
return new ParsedMessage
|
||||||
{
|
{
|
||||||
Identifier = idString,
|
Identifier = idString,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user