/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="orderBookSerializer"></param>
        /// <param name="orderBookTopSerializer"></param>
        /// <param name="aggregateTradeSerializer"></param>
        /// <param name="candlestickSerializer"></param>
        /// <param name="symbolPriceSerializer"></param>
        /// <param name="symbolStatisticsSerializer"></param>
        /// <param name="accountTradeSerializer"></param>
        /// <param name="tradeSerializer"></param>
        /// <param name="orderSerializer"></param>
        /// <param name="logger"></param>
        public BinanceApi(
            IBinanceHttpClient client,
            IOrderBookSerializer orderBookSerializer               = null,
            IOrderBookTopSerializer orderBookTopSerializer         = null,
            IAggregateTradeSerializer aggregateTradeSerializer     = null,
            ICandlestickSerializer candlestickSerializer           = null,
            ISymbolPriceSerializer symbolPriceSerializer           = null,
            ISymbolStatisticsSerializer symbolStatisticsSerializer = null,
            IAccountTradeSerializer accountTradeSerializer         = null,
            ITradeSerializer tradeSerializer = null,
            IOrderSerializer orderSerializer = null,
            ILogger <BinanceApi> logger      = null)
        {
            Throw.IfNull(client, nameof(client));

            HttpClient = client;

            _orderBookSerializer        = orderBookSerializer ?? new OrderBookSerializer();
            _orderBookTopSerializer     = orderBookTopSerializer ?? new OrderBookTopSerializer();
            _aggregateTradeSerializer   = aggregateTradeSerializer ?? new AggregateTradeSerializer();
            _candlestickSerializer      = candlestickSerializer ?? new CandlestickSerializer();
            _symbolPriceSerializer      = symbolPriceSerializer ?? new SymbolPriceSerializer();
            _symbolStatisticsSerializer = symbolStatisticsSerializer ?? new SymbolStatisticsSerializer();
            _accountTradeSerializer     = accountTradeSerializer ?? new AccountTradeSerializer();
            _tradeSerializer            = tradeSerializer ?? new TradeSerializer();
            _orderSerializer            = orderSerializer ?? new OrderSerializer();

            _logger = logger;
        }
示例#2
0
        /// <summary>
        /// This Factory Method hides the implementation details of the actual serializes.
        /// It simply returns an interface with a serialize method.
        /// Based on the AppSettings configuration setting "OrderSerializer"
        /// one of the available serializers (xml or data contract) is returned.
        ///
        /// The configuration setting "OrderSerializer" can have two values "XmlSerializer" or "DataContractSerializer".
        /// By default the "DataContractSerializer" is taken.
        /// </summary>
        /// <returns></returns>
        public static IOrderSerializer GetSerializer()
        {
            IOrderSerializer result = null;

            if (ConfigurationManager.AppSettings["OrderSerializer"] == "XmlSerializer")
            {
                result = new OrderXmlSerializer();
            }
            else
            {
                result = new OrderDataContractSerializer();
            }

            return(result);
        }
示例#3
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="orderBookSerializer"></param>
        /// <param name="logger"></param>
        public BinanceApi(
            IBinanceHttpClient client,
            IOrderBookSerializer orderBookSerializer = null,
            ITradeSerializer tradeSerializer         = null,
            IOrderSerializer orderSerializer         = null,
            ILogger <BinanceApi> logger = null)
        {
            Throw.IfNull(client, nameof(client));

            HttpClient = client;

            _orderBookSerializer = orderBookSerializer ?? new OrderBookSerializer();
            _tradeSerializer     = tradeSerializer ?? new TradeSerializer();
            _orderSerializer     = orderSerializer ?? new OrderSerializer();

            _logger = logger;
        }