private async Task TestConnection() { if (this.TestResult != null) { return; } m_lblTestResult.Visible = true; if (string.IsNullOrEmpty(this.AccountName) || string.IsNullOrEmpty(this.AccessToken)) { m_lblTestResult.Text = AzureResources.Form_Test_Credentials_Required; return; } this.Enabled = false; m_lblTestResult.Text = AzureResources.Form_Test_Testing_Connection; this.TestResult = null; try { var error = false; var credentials = new StorageCredentials(this.AccountName, this.AccessToken); switch (this.StorageType) { case StorageType.AzureBlob: error = await AzureBlobStorageProvider.TestContainer(credentials, this.ItemName); break; case StorageType.AzureFile: error = await AzureFileStorageProvider.TestShare(credentials, this.ItemName); break; default: error = true; break; } if (error) { throw new Exception("Could not connect to container."); } m_lblTestResult.Text = AzureResources.Form_Test_Succeeded; this.TestResult = true; } catch (Exception ex) { m_lblTestResult.Text = AzureResources.Form_Test_Failed; this.TestResult = false; } finally { this.Enabled = true; } }
// For connection testing public static async Task<bool> TestContainer(StorageCredentials credentials, string containerName) { var provider = new AzureBlobStorageProvider(); var container = await provider.GetContainer(credentials, containerName); await container.ListBlobsSegmentedAsync(null); return false; }