private DialogResult DisplayOnboardResult(Engine.OnboardResult result, TimeSpan elapsed) { var successfulFiles = result.AllFileResults.Where(file => file.UploadSucceeded).Select(file => file.File).ToArray(); var failedFiles = result.AllFileResults.Where(file => !file.UploadSucceeded).Select(file => file.File).ToArray(); string message = String.Format("{0} files uploaded successfully ({1})", successfulFiles.Length, successfulFiles.Sum(file => file.Size).ToFileSizeString()); if (failedFiles.Length > 0) { message += String.Format("\n{0} files failed to upload ({1})", failedFiles.Length, failedFiles.Sum(file => file.Size).ToFileSizeString()); } var failedFolders = result.AllFolderResults.Where(folder => !folder.CreateSucceeded).ToArray(); if (failedFolders.Length > 0) { message += String.Format("\n{0} folders failed to upload", failedFolders.Length); } if (successfulFiles.Length > 0) { message += String.Format("\nTransfer speed: {0}/s", ((long)(successfulFiles.Sum(file => file.Size) / elapsed.TotalSeconds)).ToFileSizeString()); } message += String.Format("\nElapsed time: {0}", elapsed.ToTimeSpanString()); if (failedFolders.Length > 0 || failedFiles.Length > 0) { message += String.Format("\n\nRetry failed uploads?"); return(MessageBox.Show(this, message, "Upload Results", MessageBoxButtons.RetryCancel, MessageBoxIcon.Question)); } else { return(MessageBox.Show(this, message, "Upload Results", MessageBoxButtons.OK, MessageBoxIcon.Information)); } }
private async Task LogOnboardResult(Engine.OnboardResult result, string localPath) { try { string filename = String.Format("Transfer {0} {1}.log", result.Start.ToFileNameDateTimeString(), System.IO.Path.GetFileName(localPath)); await result.ToLogFile(System.IO.File.OpenWrite(filename)); } catch { } }