示例#1
0
        public GetDevice ValidateMainAccount()
        {
            var eInfo     = Cypher.Encrypt(Environment.MachineName);
            var mConnInfo = ManagementExt.GetKey();

            using (_repository)
            {
                var infoServer = _repository.GetInfoServer(Cypher.Encrypt(eInfo));

                if (infoServer == null)
                {
                    CreateInfoServer(eInfo, mConnInfo);
                    return(null);
                }

                GetDevice decServInfo;
                if (IsUpdatedInfoServer(mConnInfo, infoServer, out decServInfo) == false)
                {
                    UpdateInfoServer(mConnInfo, decServInfo, infoServer);
                    return(null);
                }

                return(decServInfo);
            }
        }
        public Connection(string address, string username, ILoggerFactory loggerFactory, IEnumerable <string> lstHubProxy)
        {
            _log           = loggerFactory.Create(typeof(Connection));
            _statusStream  = new BehaviorSubject <ConnectionInfo>(new ConnectionInfo(ConnectionStatus.Uninitialized, address));
            Address        = address;
            _hubConnection = new HubConnection(address);
            _hubConnection.Headers.Add(SharedConstants.Server.USERNAME_HEADER, username);
            _hubConnection.Headers.Add(SharedConstants.Server.CONNECTION_ID_HEADER, Cypher.Encrypt(ManagementExt.GetKey()));

            CreateStatus().Subscribe(
                s => _statusStream.OnNext(new ConnectionInfo(s, address)),
                _statusStream.OnError,
                _statusStream.OnCompleted);
            _hubConnection.Error += exception => _log.Error("Hubo un error de conexión a la dirección " + address, exception);

            DicHubProxy = new Dictionary <string, IHubProxy>();

            foreach (var hubName in lstHubProxy)
            {
                DicHubProxy.Add(hubName, _hubConnection.CreateHubProxy(hubName));
            }
        }