public List <string> ListFiles() { var protocol = new TCPProtocol(); try { var request = new ListFilesRequest(); //Me conecto al servidor de archivos protocol.ConnectClient(ClientData.Instance.ServerIP, ClientData.Instance.ServerPort); SendRemotingConnectionRequest(); //Envio pedido y obtengo respuesta var response = request.ListFiles(protocol); List <string> fileList = response.Data.Split(',').ToList(); fileList.Remove(fileList.Last()); CurrentStatus = "Listado recibido con exito."; return(fileList); } catch (Exception e) { CurrentStatus = "Ocurrio un error desconocido."; return(new List <string>()); } finally { protocol.Disconnect(); SendRemotingDisconnectionRequest(); } }
public void SyncServers() { var protocol = new TCPProtocol(); try { var request = new ListFilesRequest(); //Me conecto al servidor de archivos protocol.ConnectClient(ClientData.Instance.ServerIP, ClientData.Instance.ServerPort); SendRemotingConnectionRequest(); //Reutilizo este mensaje, cambiandole el CMD request.Cmd = CommandEnum.Backup; //Envio pedido var response = request.ListFiles(protocol); } catch { CurrentStatus = "Ocurrio un error."; } finally { protocol.Disconnect(); SendRemotingDisconnectionRequest(); } }
public void DownloadFile(string fileName) { var protocol = new TCPProtocol(); try { string path = string.Format("{0}\\{1}", ClientData.Instance.FileRepository, fileName); var request = new DownloadRequest(); request.ClientName = ClientData.Instance.ClientName; request.FileName = fileName; request.Rest = FileHelper.FileExists(path) ? FileHelper.ReadFile(path).LongLength : 0; //Me conecto al servidor de archivos protocol.ConnectClient(ClientData.Instance.ServerIP, ClientData.Instance.ServerPort); SendRemotingConnectionRequest(); var response = request.DownloadFile(protocol, ClientData.Instance.FileRepository); //Le comunico al servidor de registro de pedi descargar un archivo. var remotingRequest = new ClientDownloadRequest() { ClientName = ClientData.Instance.ClientName, FileName = fileName }; _remotingService.SendMessage(remotingRequest); if (response.Result == TransferResponseEnum.OK) { CurrentStatus = "Archivo descargado con exito"; } else if (response.Result == TransferResponseEnum.FileDoesntExist) { CurrentStatus = "Error el archivo que quiere descargar no existe. Actualize la lista de archivos."; } else if (response.Result == TransferResponseEnum.ConnectionError) { CurrentStatus = "Ocurrio un error de conexion."; } else { CurrentStatus = "Ocurrio un error desconocido."; } } catch { CurrentStatus = "Ocurrio un error desconocido."; } finally { protocol.Disconnect(); SendRemotingDisconnectionRequest(); } }
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 SyncFiles(TCPProtocol protocol, ListFilesRequest request) { int pos = 0; foreach (var serverIP in ServerData.Instance.ServersIPs) { //Envio pedido y obtengo respuesta var port = ServerData.Instance.ServersPorts[pos]; //Me conecto al servidor "serverIP" protocol.ConnectClient(serverIP, port); var response = request.ListFiles(protocol); List <string> fileList = response.Data.Split(',').ToList(); fileList.Remove(fileList.Last()); foreach (var file in fileList) { if (!ServerData.Instance.FileList.Contains(file)) { //El archivo no existe, pido para descargarlo var downloadRequest = new DownloadRequest(); downloadRequest.FileName = file; downloadRequest.Rest = 0; var downloadResponse = downloadRequest.DownloadFile(protocol, ServerData.Instance.FileRepository); if (downloadResponse.Result == TransferResponseEnum.OK) { Console.WriteLine("Archivo descargado con exito"); ServerData.Instance.FileList.Add(file); } } } pos++; } }