private async Task <string> MultiUploadAsync(IEnumerable files) { var stringBuilder = new StringBuilder(); foreach (string file in files) { if (!IsImageFile(file)) { continue; } var screenshot = Screenshot.FromFile(file); if (await screenshot.UploadAsync()) { Debug.WriteLine("Screenshot successfully uploaded to " + screenshot.PublicUrl); if (!string.IsNullOrWhiteSpace(screenshot.PublicUrl)) { stringBuilder.AppendLine(screenshot.PublicUrl); } History.Push(screenshot); } else { ReportUploadError(screenshot); } } return(stringBuilder.ToString()); }
/// <summary> /// Uploads images and files on the clipboard to FTP. /// </summary> public async Task UploadClipboard() { if (Clipboard.ContainsImage()) { var capture = Screenshot.FromClipboard(); await UploadScreenshot(capture); } else if (Clipboard.ContainsFileDropList()) { var files = Clipboard.GetFileDropList(); if (files.Count == 1) { var capture = Screenshot.FromFile(files[0]); await UploadScreenshot(capture); } else { var result = await MultiUploadAsync(files); if (!string.IsNullOrWhiteSpace(result)) { SetClipboard(result.Trim()); } } } }