From ed007b5272bcc8c5dfe8d1fee2139bd3ef5c0f4e Mon Sep 17 00:00:00 2001 From: Jkorf <jankorf91@gmail.com> Date: Wed, 23 Oct 2024 14:04:10 +0200 Subject: [PATCH] Added overload for Create method in OrderBookFactory using SharedSymbol --- CryptoExchange.Net/Interfaces/IOrderBookFactory.cs | 8 ++++++++ CryptoExchange.Net/OrderBook/OrderBookFactory.cs | 10 +++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CryptoExchange.Net/Interfaces/IOrderBookFactory.cs b/CryptoExchange.Net/Interfaces/IOrderBookFactory.cs index 2ffc9e3..5ca48d1 100644 --- a/CryptoExchange.Net/Interfaces/IOrderBookFactory.cs +++ b/CryptoExchange.Net/Interfaces/IOrderBookFactory.cs @@ -1,4 +1,5 @@ using CryptoExchange.Net.Objects.Options; +using CryptoExchange.Net.SharedApis; using System; namespace CryptoExchange.Net.Interfaces @@ -23,5 +24,12 @@ namespace CryptoExchange.Net.Interfaces /// <param name="options">Options for the order book</param> /// <returns></returns> public ISymbolOrderBook Create(string baseAsset, string quoteAsset, Action<TOptions>? options = null); + /// <summary> + /// Create a new order book by base and quote asset names + /// </summary> + /// <param name="symbol">Symbol</param> + /// <param name="options">Options for the order book</param> + /// <returns></returns> + public ISymbolOrderBook Create(SharedSymbol symbol, Action<TOptions>? options = null); } } diff --git a/CryptoExchange.Net/OrderBook/OrderBookFactory.cs b/CryptoExchange.Net/OrderBook/OrderBookFactory.cs index 279dddb..0aafaef 100644 --- a/CryptoExchange.Net/OrderBook/OrderBookFactory.cs +++ b/CryptoExchange.Net/OrderBook/OrderBookFactory.cs @@ -1,5 +1,6 @@ using CryptoExchange.Net.Interfaces; using CryptoExchange.Net.Objects.Options; +using CryptoExchange.Net.SharedApis; using System; namespace CryptoExchange.Net.OrderBook @@ -8,14 +9,14 @@ namespace CryptoExchange.Net.OrderBook public class OrderBookFactory<TOptions> : IOrderBookFactory<TOptions> where TOptions: OrderBookOptions { private readonly Func<string, Action<TOptions>?, ISymbolOrderBook> _symbolCtor; - private readonly Func<string, string, Action<TOptions>?, ISymbolOrderBook> _assetsCtor; + private readonly Func<SharedSymbol, Action<TOptions>?, ISymbolOrderBook> _assetsCtor; /// <summary> /// ctor /// </summary> /// <param name="symbolCtor"></param> /// <param name="assetsCtor"></param> - public OrderBookFactory(Func<string, Action<TOptions>?, ISymbolOrderBook> symbolCtor, Func<string, string, Action<TOptions>?, ISymbolOrderBook> assetsCtor) + public OrderBookFactory(Func<string, Action<TOptions>?, ISymbolOrderBook> symbolCtor, Func<SharedSymbol, Action<TOptions>?, ISymbolOrderBook> assetsCtor) { _symbolCtor = symbolCtor; _assetsCtor = assetsCtor; @@ -25,6 +26,9 @@ namespace CryptoExchange.Net.OrderBook public ISymbolOrderBook Create(string symbol, Action<TOptions>? options = null) => _symbolCtor(symbol, options); /// <inheritdoc /> - public ISymbolOrderBook Create(string baseAsset, string quoteAsset, Action<TOptions>? options = null) => _assetsCtor(baseAsset, quoteAsset, options); + public ISymbolOrderBook Create(string baseAsset, string quoteAsset, Action<TOptions>? options = null) => _assetsCtor(new SharedSymbol(TradingMode.Spot, baseAsset, quoteAsset), options); + + /// <inheritdoc /> + public ISymbolOrderBook Create(SharedSymbol symbol, Action<TOptions>? options = null) => _assetsCtor(symbol, options); } }