示例#1
0
        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));
        }
示例#2
0
        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());
        }