public async Task UploadAsync() { Status = "Uploader"; FileStatusInformations.Clear(); var ftpPath = string.Format("{0}_{1:yyyyMMddHHmmss}", Configuration.Path, DateTime.Now); var sessionOptions = GetSessionOptions(); await Task.Run(() => { using (Session session = new Session()) { session.FileTransferProgress += FileTransferProgress; // Connect session.Open(sessionOptions); // Upload files TransferOptions transferOptions = new TransferOptions(); transferOptions.TransferMode = TransferMode.Binary; TransferOperationResult transferResult = null; transferResult = session.PutFiles(Location,ftpPath , false, transferOptions); // Throw on any error transferResult.Check(); return; //return transferResult.Transfers; } }); Status = "Færdig med upload. Kopier udtrækker"; var command = new CreateDownloadApplication() { FtpPath = ftpPath, EncryptedPassword = sessionOptions.Password.Encrypt(), FolderName = string.Format("{0}{1:yyyyMMddHHmmss}", Configuration.Name, DateTime.Now), HostName = Configuration.Server, UserName = Configuration.UserName }; await command.CreateDownloader(); }
// Temporarily checked out because of it's direct relation to ConfigR //public void Open() //{ // Process.Start("explorer.exe", GlobalParameters.ConfigurationFolder); //} private void FileTransferProgress(object sender, FileTransferProgressEventArgs e) { var attr = File.GetAttributes(e.FileName); if ((attr & FileAttributes.Directory) == FileAttributes.Directory) return; Application.Current.Dispatcher.Invoke(() => { var info = FileStatusInformations.FirstOrDefault(x => x.Path == e.FileName); if (info == null) { info = new Status() {Path = e.FileName}; FileStatusInformations.Add(info); } info.Progress = (int) (e.FileProgress * 100); }); CPS = e.CPS; OverallProgress = e.OverallProgress * 100; }