public async Task<ISlackConnection> Connect(string slackKey, ProxySettings proxySettings = null) { if (string.IsNullOrEmpty(slackKey)) { throw new ArgumentNullException(nameof(slackKey)); } var handshakeClient = _connectionFactory.CreateHandshakeClient(); HandshakeResponse handshakeResponse = await handshakeClient.FirmShake(slackKey); if (!handshakeResponse.Ok) { throw new HandshakeException(handshakeResponse.Error); } var connectionInfo = new ConnectionInformation { SlackKey = slackKey, Self = new ContactDetails { Id = handshakeResponse.Self.Id, Name = handshakeResponse.Self.Name }, Team = new ContactDetails { Id = handshakeResponse.Team.Id, Name = handshakeResponse.Team.Name }, Users = GenerateUsers(handshakeResponse.Users), SlackChatHubs = GetChatHubs(handshakeResponse), WebSocket = await GetWebSocket(handshakeResponse, proxySettings) }; return _slackConnectionFactory.Create(connectionInfo); }
public void should_set_properties_when_values_are_given() { // given const string url = "my-url"; const string username = "******"; const string password = "******"; // when var settings = new ProxySettings(url, username, password); // then Assert.That(settings.Url, Is.EqualTo(url)); Assert.That(settings.Username, Is.EqualTo(username)); Assert.That(settings.Password, Is.EqualTo(password)); }
public IWebSocketClient CreateWebSocketClient(string url, ProxySettings proxySettings) { return new WebSocketClient(new MessageInterpreter(new Logger()), url, proxySettings); }
private async Task<IWebSocketClient> GetWebSocket(HandshakeResponse handshakeResponse, ProxySettings proxySettings) { var webSocketClient = _connectionFactory.CreateWebSocketClient(handshakeResponse.WebSocketUrl, proxySettings); await webSocketClient.Connect(); return webSocketClient; }