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);
                }
            }
        }
Esempio n. 2
0
        private void SendRemotingDisconnectionRequest()
        {
            //Le comunico al servidor de registro de actividad que me desconecto.
            var remotingRequest = new ClientDisconnectionRequest()
            {
                ClientName = ClientData.Instance.ClientName
            };

            _remotingService.SendMessage(remotingRequest);
        }
Esempio n. 3
0
 public ClientDisonnectionResponse NotifyDisconnection(ClientDisconnectionRequest message)
 {
     try
     {
         AddItemToList(string.Format("Info: Se desconecto el cliente de nombre: {0}", message.ClientName));
         CommunicationMQ.EnviarMensaje(CommunicationMQ.QueueConciliation, message, string.Format("Info: Se desconecto el cliente de nombre: {0}", message.ClientName));
         return(new ClientDisonnectionResponse()
         {
             Cmd = CommandEnum.ClientDisconnection,
             Header = MessageTypeEnum.RES,
             Result = TransferResponseEnum.OK
         });
     }
     catch (Exception ex)
     {
         throw new Exception(string.Format("Error: no se pudo notificar la conexion: {0}", ex.Message));
     }
 }