예제 #1
0
        public async Task <EltraDevice> GetDevice(int nodeId)
        {
            EltraDevice result       = null;
            bool        signInResult = await _connector.SignIn(_identity, true);

            if (signInResult)
            {
                var deviceIdentity = new UserIdentity()
                {
                    Login = "******", Password = "******"
                };

                var connectResult = await _connector.Connect(deviceIdentity);

                if (connectResult)
                {
                    var channels = await _connector.GetChannels();

                    foreach (var channel in channels)
                    {
                        foreach (var device in channel.Devices)
                        {
                            if (device.NodeId == nodeId)
                            {
                                result = device;
                                break;
                            }
                        }
                    }
                }
            }

            return(result);
        }
예제 #2
0
        public async Task Authentication_ConnectConcurrently2ConnectorsToTestMasterShouldSucceed()
        {
            //Arrange
            bool signInResult1 = await _connector.SignIn(Identity, true);

            var secondConnector = new AgentConnector()
            {
                Host = _host
            };
            var  secondIdentity = CreateUserIdentity();
            bool signInResult2  = await secondConnector.SignIn(secondIdentity, true);

            //Act
            var result1 = await _connector.Connect();

            var result2 = await secondConnector.Connect();

            //Assert
            Assert.True(signInResult1, "Sign-in first connector failed.");
            Assert.True(signInResult2, "Sign-in second connector failed.");
            Assert.True(result1, "Connect first connector failed.");
            Assert.True(result2, "Connect second connector failed.");

            await _connector.SignOut();

            await secondConnector.SignOut();
        }
예제 #3
0
        public async Task <bool> Connect(string host, int sessionId)
        {
            bool result     = false;
            var  signInData = new UserIdentity()
            {
                Login = $"agent{sessionId}@eltra.ch", Password = "******"
            };

            _connector = new AgentConnector()
            {
                Host = host
            };

            if (await _connector.SignIn(signInData, true))
            {
                var deviceIdentity = new UserIdentity()
                {
                    Login = "******", Password = "******"
                };

                if (!await _connector.Connect(deviceIdentity))
                {
                    Console.WriteLine("uups, no connection, timeout!");
                }
                else
                {
                    result = true;
                }
            }

            return(result);
        }
예제 #4
0
        public async Task <EltraDevice> GetDevice(int nodeId, string deviceLogin, string devicePassword)
        {
            EltraDevice result = null;

            if (string.IsNullOrEmpty(Settings.Default.LoginName))
            {
                Settings.Default.LoginName = _identity.Login;
                Settings.Default.Password  = _identity.Password;

                Settings.Default.Save();
            }
            else
            {
                _identity.Login    = Settings.Default.LoginName;
                _identity.Password = Settings.Default.Password;
            }

            bool signInResult = await _connector.SignIn(_identity, true);

            if (signInResult)
            {
                var deviceIdentity = new UserIdentity()
                {
                    Login = deviceLogin, Password = devicePassword
                };

                var connectResult = await _connector.Connect(deviceIdentity);

                if (connectResult)
                {
                    var channels = await _connector.GetChannels();

                    foreach (var channel in channels)
                    {
                        foreach (var device in channel.Devices)
                        {
                            if (device.NodeId == nodeId)
                            {
                                result = device;
                                break;
                            }
                        }
                    }
                }
            }

            return(result);
        }