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> TestShare(StorageCredentials credentials, string containerName) { var provider = new AzureFileStorageProvider(); var fileShare = await provider.GetShare(credentials, containerName); var rootDir = fileShare.GetRootDirectoryReference(); await rootDir.ListFilesAndDirectoriesSegmentedAsync(null); return(false); }