diff --git a/CryptoExchange.Net/Objects/AssetAlias.cs b/CryptoExchange.Net/Objects/AssetAlias.cs index 5829d09..5ef6bc7 100644 --- a/CryptoExchange.Net/Objects/AssetAlias.cs +++ b/CryptoExchange.Net/Objects/AssetAlias.cs @@ -9,6 +9,10 @@ namespace CryptoExchange.Net.Objects /// public class AssetAlias { + /// + /// Alias type + /// + public AliasType Type { get; set; } /// /// The name of the asset on the exchange /// @@ -21,10 +25,26 @@ namespace CryptoExchange.Net.Objects /// /// ctor /// - public AssetAlias(string exchangeName, string commonName) + public AssetAlias(string exchangeName, string commonName, AliasType type = AliasType.BothWays) { ExchangeAssetName = exchangeName; CommonAssetName = commonName; + Type = type; } } + + /// + /// Alias type + /// + public enum AliasType + { + /// + /// Translate both from and to exchange + /// + BothWays, + /// + /// Only translate when converting to exchange + /// + OnlyToExchange + } } diff --git a/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs b/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs index ab5622f..763b6ec 100644 --- a/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs +++ b/CryptoExchange.Net/Objects/AssetAliasConfiguration.cs @@ -23,12 +23,22 @@ namespace CryptoExchange.Net.Objects /// /// Map the common name to an exchange name for an asset. If there is no alias the input name is returned /// - public string CommonToExchangeName(string commonName) => !AutoConvertEnabled ? commonName : Aliases.SingleOrDefault(x => x.CommonAssetName == commonName)?.ExchangeAssetName ?? commonName; + public string CommonToExchangeName(string commonName) => !AutoConvertEnabled ? commonName : Aliases.FirstOrDefault(x => x.CommonAssetName == commonName)?.ExchangeAssetName ?? commonName; /// /// Map the exchange name to a common name for an asset. If there is no alias the input name is returned /// - public string ExchangeToCommonName(string exchangeName) => !AutoConvertEnabled ? exchangeName : Aliases.SingleOrDefault(x => x.ExchangeAssetName == exchangeName)?.CommonAssetName ?? exchangeName; + public string ExchangeToCommonName(string exchangeName) + { + if (!AutoConvertEnabled) + return exchangeName; + + var alias = Aliases.FirstOrDefault(x => x.ExchangeAssetName == exchangeName); + if (alias == null || alias.Type == AliasType.OnlyToExchange) + return exchangeName; + + return alias.CommonAssetName; + } } }