예제 #1
0
        public async Task DeleteBlobsAsync()
        {
            if (SelectedBlobs.Count == 0)
            {
                return;
            }

            string message = SelectedBlobs.Count == 1
            ? $"'{SelectedBlobs.First().Name}'"
            : $"{"item".ToQuantity(SelectedBlobs.Count)}";

            if (await DialogService.AskYesNoAsync(
                    Strings.BackgroundTask_Delete_DialogTitle, "Would you like to delete " + message + "?"))
            {
                await TaskService.ScheduleAsync(new DeleteFilesTask(Account, Storage, SelectedBlobs));
            }
        }
        public void DownloadBlobs()
        {
            if (SelectedBucket is null)
            {
                return;
            }

            using (var dialog = new System.Windows.Forms.FolderBrowserDialog())
            {
                System.Windows.Forms.DialogResult result = dialog.ShowDialog();

                if (result != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }

                var entries = SelectedBlobs.Select(b => b.NativeBlob).ToList();
                AddTask(new DownloadBlobsTaskViewModel(dialog.SelectedPath, entries));
            }
        }
        private async void CopyLink()
        {
            if (SelectedBlobs?.Count < 0)
            {
                return;
            }

            SelectedBucket.IsBusy = true;

            try
            {
                var blobs = new List <IBlob>();

                blobs.AddRange(SelectedBlobs.Select(b => b.NativeBlob).OfType <IBlob>());

                foreach (var dirVm in SelectedBlobs.Where(b => b.IsDirectory))
                {
                    var children = await dirVm.NativeBlob.ListAllBlobsAsync();

                    blobs.AddRange(children);
                }

                var builder = new StringBuilder();

                foreach (var blob in blobs)
                {
                    var link = blob.GetLink(TimeSpan.FromHours(24));
                    builder.AppendLine(link.AbsoluteUri);
                }

                Clipboard.SetText(builder.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                SelectedBucket.IsBusy = false;
            }
        }