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