private void BeforeTransferStartCallback(TransferInitializationResult result) { if (result.TargetFreeSpace.HasValue && result.TargetFreeSpace <= TotalBytes) { WindowManager.ShowMessage(Resx.IOError, Resx.NotEnoughFreeSpaceOnTargetDevice); return; } if (result.TelnetException != null) { var dialog = new RemoteCopyErrorDialog(result.TelnetException); if (dialog.ShowDialog() == false) { return; } if (dialog.TurnOffRemoteCopy) { _userSettingsProvider.UseRemoteCopy = false; } } _remoteCopy = result.RemoteCopyMode; ProgressState = TaskbarItemProgressState.Normal; EventAggregator.GetEvent <TransferStartedEvent>().Publish(new TransferStartedEventArgs(this)); _elapsedTimeMeter.Restart(); ProcessQueueItem(); }
private TransferInitializationResult BeforeTransferStart() { if (UserAction == FileOperation.Delete) { return(new TransferInitializationResult(RemoteCopyMode.Disabled)); } var result = new TransferInitializationResult { TargetFreeSpace = TargetPane.FreeSpace }; if (result.TargetFreeSpace == null || result.TargetFreeSpace > TotalBytes) { var ftpPane = Pane <FtpContentViewModel>(); var localPane = Pane <LocalFileSystemContentViewModel>(); if (ftpPane != null && localPane != null && localPane.IsNetworkDrive && _userSettingsProvider.UseRemoteCopy) { try { OpenTelnetSession(localPane, ftpPane); result.RemoteCopyMode = SourcePane == ftpPane ? RemoteCopyMode.Download : RemoteCopyMode.Upload; } catch (TelnetException exception) { result.RemoteCopyMode = RemoteCopyMode.Disabled; result.TelnetException = exception; } } } return(result); }