Exemple #1
0
        public void SendFile(string pathArchivo)
        {
            var portocol = new TCPProtocol();

            try
            {
                //Obtengo el archivo
                byte[] fileBytes = FileHelper.ReadFile(pathArchivo);

                var request = new UploadRequest();
                request.ClientName = ClientData.Instance.ClientName;
                request.FileName   = Path.GetFileName(pathArchivo);
                request.FileLength = fileBytes.LongLength;
                request.File       = fileBytes;

                //Me conecto al servidor de archivos
                portocol.ConnectClient(ClientData.Instance.ServerIP, ClientData.Instance.ServerPort);

                SendRemotingConnectionRequest();

                //Envio el archivo y obtengo respuesta
                var response = request.SendFile(portocol);

                //Le comunico al servidor de registro de pedi subir un archivo.
                var remotingRequest = new ClientUploadRequest()
                {
                    ClientName = ClientData.Instance.ClientName,
                    FileName   = Path.GetFileName(pathArchivo)
                };
                _remotingService.SendMessage(remotingRequest);

                if (response.Result == TransferResponseEnum.OK)
                {
                    CurrentStatus = "Archivo subido con exito";
                }
                else if (response.Result == TransferResponseEnum.FileExists)
                {
                    CurrentStatus = "Error: El archivo ya existia en el servidor.";
                }
                else
                {
                    CurrentStatus = "Ocurrio un error.";
                }
            }
            catch
            {
                CurrentStatus = "Ocurrio un error.";
            }
            finally
            {
                portocol.Disconnect();
                SendRemotingDisconnectionRequest();
            }
        }
        private void UploadFile(TCPProtocol protocol, UploadRequest request)
        {
            var response = new UploadResponse();

            try
            {
                //Le comunico al servidor de conciliacion un usuario pidio subir un archivo.
                var remotingRequest = new ClientUploadRequest()
                {
                    ClientName = request.ClientName,
                    FileName   = request.FileName
                };
                _remotingService.SendMessage(remotingRequest);


                response.Result = ServerData.Instance.FileExists(request.FileName) ? TransferResponseEnum.FileExists : TransferResponseEnum.OK;

                protocol.SendMessage(response);

                if (response.Result == TransferResponseEnum.OK)
                {
                    bool archivo = protocol.RecieveFile(string.Format("{0}\\{1}", ServerData.Instance.FileRepository, request.FileName), true, request.FileLength);


                    response        = new UploadResponse();
                    response.Result = (archivo) ? TransferResponseEnum.OK : TransferResponseEnum.Error;

                    if (response.Result == TransferResponseEnum.OK)
                    {
                        ServerData.Instance.AddFile(request.FileName);
                    }
                    else
                    {
                        FileHelper.DeleteFile(string.Format("{0}\\{1}", ServerData.Instance.FileRepository, request.FileName));
                    }

                    protocol.SendMessage(response);
                }
                else
                {
                    Console.WriteLine("Error subiendo archivo");
                }
            }
            catch (Exception ex)
            {
                FileHelper.DeleteFile(string.Format("{0}\\{1}", ServerData.Instance.FileRepository, request.FileName));
                response.Result = TransferResponseEnum.ConnectionError;

                protocol.SendMessage(response);
            }
        }
Exemple #3
0
 public ClientUploadResponse NotifyUploadRequest(ClientUploadRequest message)
 {
     try
     {
         Logger.LogMessage(string.Format("Info: El cliente de nombre: {0} solicito la subida del archivo: {1}", message.ClientName, message.FileName));
         CommunicationMQ.EnviarMensaje(CommunicationMQ.QueueComunicaciones, message, string.Format("Info: El cliente de nombre: {0} solicito la subida del archivo: {1}", message.ClientName, message.FileName));
         return(new ClientUploadResponse()
         {
             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));
     }
 }