protected XApiClient(XProvider provider, ConnectionInfo info, IXSpi spi = null) { Info = info; Provider = provider; User = provider.GetUserInfo(info.User); Server = provider.GetServerInfo(info.Server, info.UseType); Logger = LogManager.GetLogger($"{provider.Name}.{info.LogPrefix}.{User.UserID}"); Api = provider.CreateXApi(info); if (spi != null) { Api.RegisterSpi(spi); } Api.ErrorHappened += OnErrorHappened; Api.StatusChanged += OnStatusChanged; Api.InvestorReceived += OnInvestorReceived; Api.AccountReceived += OnRspQryAccount; Api.PositionReceived += OnRspQryPositions; Api.OrderReturn += OnRtnOrder; Api.TradeReturn += OnRtnTrade; Api.InstrumentReceived += OnInstrumentReceived; Api.MarketDataReceived += OnMarketDataReceived; Api.OrderReceived += OnOrderReceived; Api.TradeReceived += OnTradeReceived; Api.InstrumentStatusChanged += OnInstrumentStatusChanged; }