1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-12-14 09:51:50 +00:00
This commit is contained in:
JKorf 2025-11-20 21:18:13 +01:00
parent d03e4a53ef
commit 3a7ac88c53
7 changed files with 32 additions and 32 deletions

View File

@ -84,7 +84,7 @@ namespace CryptoExchange.Net.Converters.MessageParsing.DynamicConverters
{
foreach(var item in _items)
{
if (item.Field.SearchName == searchName)
if (item.Field.SearchName.Equals(searchName, StringComparison.Ordinal))
return item.Value;
}

View File

@ -86,8 +86,8 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
{
var stringValue = reader.GetString();
if (string.IsNullOrWhiteSpace(stringValue)
|| stringValue == "-1"
|| stringValue == "0001-01-01T00:00:00Z"
|| stringValue!.Equals("-1", StringComparison.Ordinal)
|| stringValue!.Equals("0001-01-01T00:00:00Z", StringComparison.OrdinalIgnoreCase)
|| decimal.TryParse(stringValue, out var decVal) && decVal == 0)
{
return default;
@ -127,7 +127,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
/// </summary>
public static DateTime ParseFromString(string stringValue, string? resolverName)
{
if (stringValue!.Length == 12 && stringValue.StartsWith("202"))
if (stringValue!.Length == 12 && stringValue.StartsWith("202", StringComparison.OrdinalIgnoreCase))
{
// Parse 202303261200 format
if (!int.TryParse(stringValue.Substring(0, 4), out var year)

View File

@ -48,7 +48,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
if (field is PropertyFieldReference propRef
&& otherField is PropertyFieldReference otherPropRef)
{
return field.Depth == otherPropRef.Depth && propRef.PropertyName == otherPropRef.PropertyName;
return field.Depth == otherPropRef.Depth && propRef.PropertyName.SequenceEqual(otherPropRef.PropertyName);
}
else if (field is ArrayFieldReference arrayRef
&& otherField is ArrayFieldReference otherArrayPropRef)
@ -62,11 +62,11 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
_overlappingFields = true;
}
MessageEvalutorFieldReference? existing = null;
MessageEvalutorFieldReference? existingSameSearchField = null;
if (field is ArrayFieldReference arrayField)
{
_hasArraySearches = true;
existing = _searchFields.SingleOrDefault(x =>
existingSameSearchField = _searchFields.SingleOrDefault(x =>
x.Field is ArrayFieldReference arrayFieldRef
&& arrayFieldRef.ArrayIndex == arrayField.ArrayIndex
&& arrayFieldRef.Depth == arrayField.Depth
@ -74,39 +74,37 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
}
else if (field is PropertyFieldReference propField)
{
existing = _searchFields.SingleOrDefault(x =>
existingSameSearchField = _searchFields.SingleOrDefault(x =>
x.Field is PropertyFieldReference propFieldRef
&& propFieldRef.PropertyName == propField.PropertyName
&& propFieldRef.PropertyName.SequenceEqual(propField.PropertyName)
&& propFieldRef.Depth == propField.Depth
&& (propFieldRef.Constraint == null && propFieldRef.Constraint == null));
}
if (existing != null)
if (existingSameSearchField != null)
{
if (existing.SkipReading == true
if (existingSameSearchField.SkipReading == true
&& (evaluator.IdentifyMessageCallback != null
|| field.Constraint != null))
{
existing.SkipReading = false;
existingSameSearchField.SkipReading = false;
}
if (evaluator.ForceIfFound)
{
if (evaluator.Fields.Length > 1 || existing.ForceEvaluator != null)
if (evaluator.Fields.Length > 1 || existingSameSearchField.ForceEvaluator != null)
throw new Exception("Invalid config");
existing.ForceEvaluator = evaluator;
existingSameSearchField.ForceEvaluator = evaluator;
}
}
else
_searchFields.Add(new MessageEvalutorFieldReference
{
_searchFields.Add(new MessageEvalutorFieldReference
{
SkipReading = evaluator.IdentifyMessageCallback == null && field.Constraint == null,
ForceEvaluator = evaluator.ForceIfFound ? evaluator : null,
Field = field
});
}
SkipReading = evaluator.IdentifyMessageCallback == null && field.Constraint == null,
ForceEvaluator = evaluator.ForceIfFound ? evaluator : null,
Field = field
});
if (field.Depth > _maxSearchDepth)
_maxSearchDepth = field.Depth;

View File

@ -23,7 +23,8 @@ namespace CryptoExchange.Net.Objects
/// <summary>
/// Map the common name to an exchange name for an asset. If there is no alias the input name is returned
/// </summary>
public string CommonToExchangeName(string commonName) => !AutoConvertEnabled ? commonName : Aliases.FirstOrDefault(x => x.CommonAssetName == commonName)?.ExchangeAssetName ?? commonName;
public string CommonToExchangeName(string commonName) =>
!AutoConvertEnabled ? commonName : Aliases.FirstOrDefault(x => x.CommonAssetName.Equals(commonName, StringComparison.InvariantCulture))?.ExchangeAssetName ?? commonName;
/// <summary>
/// Map the exchange name to a common name for an asset. If there is no alias the input name is returned
@ -33,7 +34,7 @@ namespace CryptoExchange.Net.Objects
if (!AutoConvertEnabled)
return exchangeName;
var alias = Aliases.FirstOrDefault(x => x.ExchangeAssetName == exchangeName);
var alias = Aliases.FirstOrDefault(x => x.ExchangeAssetName.Equals(exchangeName, StringComparison.InvariantCulture));
if (alias == null || alias.Type == AliasType.OnlyToExchange)
return exchangeName;

View File

@ -21,7 +21,7 @@ namespace CryptoExchange.Net.RateLimiting.Filters
/// <inheritdoc />
public bool Passes(RateLimitItemType type, RequestDefinition definition, string host, string? apiKey)
=> host == _host;
=> host.Equals(_host, System.StringComparison.InvariantCulture);
}
}

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace CryptoExchange.Net.SharedApis
{
@ -39,8 +40,8 @@ namespace CryptoExchange.Net.SharedApis
/// <returns></returns>
public bool HasValue(string exchange, string name, Type type)
{
var val = _parameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == name);
val ??= _staticParameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == name);
var val = _parameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(name, StringComparison.InvariantCulture));
val ??= _staticParameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(name, StringComparison.InvariantCulture));
if (val == null)
return false;
@ -71,7 +72,7 @@ namespace CryptoExchange.Net.SharedApis
if (provided == true)
return true;
var val = _staticParameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == name);
var val = _staticParameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(name, StringComparison.InvariantCulture));
if (val == null)
return false;
@ -95,7 +96,7 @@ namespace CryptoExchange.Net.SharedApis
/// <param name="name">Parameter name</param>
public T? GetValue<T>(string exchange, string name)
{
var val = _parameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == name);
var val = _parameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(name, StringComparison.InvariantCulture));
if (val == null)
return default;
@ -122,7 +123,7 @@ namespace CryptoExchange.Net.SharedApis
T? value;
if (exchangeParameters == null)
{
var parameter = _staticParameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == name);
var parameter = _staticParameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(name, StringComparison.InvariantCulture));
if (parameter == null)
return default;
@ -155,7 +156,7 @@ namespace CryptoExchange.Net.SharedApis
/// <param name="value">Parameter value</param>
public static void SetStaticParameter(string exchange, string key, object value)
{
var existing = _staticParameters.SingleOrDefault(x => x.Exchange == exchange && x.Name == key);
var existing = _staticParameters.SingleOrDefault(x => x.Exchange.Equals(exchange, StringComparison.InvariantCulture) && x.Name.Equals(key, StringComparison.InvariantCulture));
if (existing != null)
{
existing.Value = value;

View File

@ -121,7 +121,7 @@ namespace CryptoExchange.Net.Testing.Implementations
}
}
public Task ReconnectAsync() => throw new NotImplementedException();
public Task ReconnectAsync() => Task.CompletedTask;
public void Dispose() { }
public void UpdateProxy(ApiProxy? proxy) => throw new NotImplementedException();