public Result <FileTransfer> HandleOutboundFileTransferRequest(GetFileRequest getFileRequest) { var requestedFilePath = Path.Combine(getFileRequest.LocalFolderPath, getFileRequest.FileName); if (!File.Exists(requestedFilePath)) { ReportError("Requested file does not exist"); RequestedFileDoesNotExist?.Invoke(this, getFileRequest); return(Result.Fail <FileTransfer>("Requested file does not exist")); } var fileSizeInBytes = new FileInfo(requestedFilePath).Length; var outboundFileTransfer = InitializeFileTransfer( TransferDirection.Outbound, FileTransferInitiator.RemoteServer, getFileRequest.RemoteServerInfo, getFileRequest.FileName, fileSizeInBytes, getFileRequest.LocalFolderPath, getFileRequest.RemoteFolderPath, DateTime.Now.Ticks, Settings.TransferRetryLimit, getFileRequest.RemoteServerTransferId); return(Result.Ok(outboundFileTransfer)); }
Result HandleRequestedFileDoesNotExist(Request pendingRequest) { if (!(pendingRequest is FileTransferResponse fileTransferResponse)) { return(Result.Fail($"Request received is not valid for this operation ({pendingRequest.Type}).")); } RequestedFileDoesNotExist?.Invoke(this, fileTransferResponse); return(Result.Ok()); }