Пример #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();
            }
        }