public async Task Initialise(ConnectionInformation connectionInformation) { SlackKey = connectionInformation.SlackKey; Team = connectionInformation.Team; Self = connectionInformation.Self; _userCache = connectionInformation.Users; _connectedHubs = connectionInformation.SlackChatHubs; _webSocketClient = connectionInformation.WebSocket; _webSocketClient.OnClose += (sender, args) => { ConnectedSince = null; RaiseOnDisconnect(); }; _webSocketClient.OnMessage += async(sender, message) => await ListenTo(message); ConnectedSince = DateTime.Now; _pingPongMonitor = _monitoringFactory.CreatePingPongMonitor(); await _pingPongMonitor.StartMonitor(Ping, Reconnect, TimeSpan.FromMinutes(2)); }