Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
 public IWebSocketClient CreateWebSocketClient(string url, ProxySettings proxySettings)
 {
     return new WebSocketClient(new MessageInterpreter(new Logger()), url, proxySettings);
 }
Ejemplo n.º 4
0
 private async Task<IWebSocketClient> GetWebSocket(HandshakeResponse handshakeResponse, ProxySettings proxySettings)
 {
     var webSocketClient = _connectionFactory.CreateWebSocketClient(handshakeResponse.WebSocketUrl, proxySettings);
     await webSocketClient.Connect();
     return webSocketClient;
 }