private async void TransferCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { if (e.Cancelled) { ResetUI(); return; } btnReset.IsEnabled = true; btnCopy.IsEnabled = true; btnUpload.Content = "Complete"; var url = (string)e.UserState; txtDownloadUrl.Text = await ShortenUrl(url); MessageBox.Show("File Upload Complete."); blobTransfer = null; }
private void UploadFile(string filePath) { var credentials = new StorageCredentials(Properties.Settings.Default.StorageName, Properties.Settings.Default.StorageKey); var storageAccount = new CloudStorageAccount(credentials, true); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("shared"); // Ensure container exists container.CreateIfNotExists(); var extension = System.IO.Path.GetExtension(filePath); string blobName = Guid.NewGuid() + extension; var blockBlob = container.GetBlockBlobReference(blobName); var url = blockBlob.Uri.ToString(); blobTransfer = new BlobTransfer(); blobTransfer.TransferProgressChanged += TransferProgressChanged; blobTransfer.TransferCompleted += TransferCompleted; blobTransfer.UploadBlobAsync(blockBlob, filePath, url); }
private void TransferProgressChanged(object sender, BlobTransfer.BlobTransferProgressChangedEventArgs e) { prgUploadProgress.Value = e.ProgressPercentage; statusSpeed.Content = (int)(e.Speed / 1024) + "kb/sec"; statusBytesTransfered.Content = (int)(e.BytesSent / 1024) + (int)(e.BytesSent % 1024) + "kb sent"; statusBytesRemaining.Content = (int)((e.TotalBytesToSend - e.BytesSent) / 1024) + "kb remaining"; string timeRemaining; if (e.TimeRemaining.TotalHours > 0) { timeRemaining = Math.Round(e.TimeRemaining.TotalHours, 2) + " hours"; } else if (e.TimeRemaining.TotalMinutes > 0) { timeRemaining = Math.Round(e.TimeRemaining.TotalMinutes, 2) + " mins"; } else { timeRemaining = Math.Round(e.TimeRemaining.TotalSeconds, 0) + " secs"; } statusTimeRemaining.Content = timeRemaining; }