public void Listen(TcpListener tcpListener)
        {
            while (!_shouldStop)
            {
                var protocol   = new TCPProtocol();
                var clientName = String.Empty;
                protocol.Listen(tcpListener);

                try
                {
                    var message = protocol.RecieveMessage();
                    clientName = message.ClientName;

                    //Le comunico al servidor de conciliacion que un cliente se conecto.
                    var remotingRequest = new ClientConnectionRequest()
                    {
                        ClientName = clientName
                    };
                    _remotingService.SendMessage(remotingRequest);

                    if (message.Header == MessageTypeEnum.REQ)
                    {
                        if (message.Cmd == CommandEnum.Download)
                        {
                            DownloadFile(protocol, (DownloadRequest)message);
                        }
                        else if (message.Cmd == CommandEnum.Upload)
                        {
                            UploadFile(protocol, (UploadRequest)message);
                        }
                        else if (message.Cmd == CommandEnum.ListFiles)
                        {
                            SendFileList(protocol, (ListFilesRequest)message);
                        }
                        else if (message.Cmd == CommandEnum.Backup)
                        {
                            SyncFiles(protocol, (ListFilesRequest)message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Ocurrio un error.", ex.Message);
                }
                finally
                {
                    protocol.Disconnect();
                    //Le comunico al servidor de conciliacion que un cliente se desconecto.
                    var remotingRequest = new ClientDisconnectionRequest()
                    {
                        ClientName = clientName
                    };
                    _remotingService.SendMessage(remotingRequest);
                }
            }
        }
Exemple #2
0
        private void SendRemotingConnectionRequest()
        {
            //Le comunico al servidor de registro de actividad que me conecte.
            var remotingRequest = new ClientConnectionRequest()
            {
                ClientName = ClientData.Instance.ClientName
            };

            _remotingService.SendMessage(remotingRequest);
        }
 public virtual void SetConnectionRequest(ClientConnectionRequest connRequest)
 {
     if (this.aborted)
     {
         return;
     }
     this.abortLock.Lock();
     try
     {
         this.cancellable = new _Cancellable_60(connRequest);
     }
     finally
     {
         this.abortLock.Unlock();
     }
 }
Exemple #4
0
        public ClientConnectionResponse NotifyConnection(ClientConnectionRequest message)
        {
            try
            {
                AddItemToList(string.Format("Info: Se conecto el cliente de nombre: {0}", message.ClientName));
                CommunicationMQ.EnviarMensaje(CommunicationMQ.QueueConciliation, message, string.Format("Info: Se conecto el cliente de nombre: {0}", message.ClientName));

                return(new ClientConnectionResponse()
                {
                    Cmd = CommandEnum.ClientConnection,
                    Header = MessageTypeEnum.RES,
                    Result = TransferResponseEnum.OK
                });
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("Error: no se pudo notificar la conexion: {0}", ex.Message));
            }
        }
 public _Cancellable_60(ClientConnectionRequest connRequest)
 {
     this.connRequest = connRequest;
 }
 public ClientRequestingConnectionEventArgs(IClient client, ClientConnectionRequest request) : base(client)
 {
     Request = request;
 }