/// <summary> /// The DI constructor. /// </summary> /// <param name="client">The JSON client (required).</param> /// <param name="controller">The web socket stream controller (required).</param> /// <param name="streamControl">The web socket stream control (required).</param> /// <param name="logger">The logger (optional).</param> public UserDataWebSocketClientManager(IUserDataClient client, IWebSocketStreamController controller, IUserDataWebSocketStreamControl streamControl, ILogger <UserDataWebSocketClientManager> logger = null) : base(client, controller, logger) { Throw.IfNull(streamControl, nameof(streamControl)); _streamControl = streamControl; _streamControl.ListenKeyUpdate += (s, a) => { try { if (a.NewListenKey == null) { Logger?.LogError($"{nameof(UserDataWebSocketClientManager)}: Failed to get new listen key."); return; } // Unsubscribe client from stream. Controller.Stream.Unsubscribe(Client, a.OldListenKey); // Update client listen key. HandleListenKeyChange(a.OldListenKey, a.NewListenKey); // Subscribe client to new stream. Controller.Stream.Subscribe(Client, a.NewListenKey); } catch (Exception e) { Logger?.LogError(e, $"{nameof(UserDataWebSocketClientManager)}: Failed to update listen key."); } }; }
/// <summary> /// The DI constructor. /// </summary> /// <param name="client">The JSON client (required).</param> /// <param name="controller">The JSON stream controller (required).</param> /// <param name="logger">The logger (optional).</param> public UserDataClientManager(IUserDataClient client, IJsonStreamController controller, ILogger <UserDataClientManager> logger = null) : base(client, controller, logger) { }
/// <summary> /// Unsubscribe listen key (and user along w/ all callbacks). /// </summary> /// <param name="client"></param> /// <param name="listenKey"></param> public static IUserDataClient Unsubscribe(this IUserDataClient client, string listenKey) => client.Unsubscribe <UserDataEventArgs>(listenKey, null);
/// <summary> /// Subscribe listen key and user (w/o callback). /// </summary> /// <param name="client"></param> /// <param name="listenKey"></param> /// <param name="user"></param> public static IUserDataClient Subscribe(this IUserDataClient client, string listenKey, IBinanceApiUser user) => client.Subscribe <UserDataEventArgs>(listenKey, user, null);
public UserDataClientTests() { _client = new UserDataClient(); }
public AuthenticateController(IUserDataClient userDataClient) { this.userDataClient = userDataClient; }