3
3
using System ;
4
4
using System . IO ;
5
5
using DataOne . BitUp . Properties ;
6
-
6
+ using System . Linq ;
7
+
7
8
namespace DataOne . BitUp
8
9
{
9
10
public class AzureStorage : IStorage
@@ -12,23 +13,13 @@ public void SaveFile(string filePath)
12
13
{
13
14
string fileName = Path . GetFileName ( filePath ) ;
14
15
15
- string accountName = Settings . Default . AzureAccountName ;
16
- string accountKey = Settings . Default . AzureAccountKey ;
17
16
string storageContainer = Settings . Default . AzureStorageContainer ;
18
- string defaultEndpointsProtocol = Resources . AzureEndpointsProtocol ;
17
+ string accountName = Settings . Default . AzureAccountName ;
19
18
string fileLocation = Resources . AzureFileLocation ;
20
19
string fileUri = Resources . AzureFileUri ;
21
20
22
- string connectionKey = string . Concat ( defaultEndpointsProtocol , "AccountName=" , accountName , ";AccountKey=" , accountKey , ";" ) ;
23
-
24
- CloudStorageAccount storageAccount = CloudStorageAccount . Parse ( connectionKey ) ;
25
- CloudFileClient fileClient = storageAccount . CreateCloudFileClient ( ) ;
26
-
27
- CloudFileShare share = fileClient . GetShareReference ( storageContainer ) ;
28
- share . CreateIfNotExists ( ) ;
29
-
30
- CloudFileDirectory rootDir = share . GetRootDirectoryReference ( ) ;
31
- rootDir . CreateIfNotExists ( ) ;
21
+ var fileClient = GetFileClient ( ) ;
22
+ var rootDir = EnsureRootDirectory ( fileClient ) ;
32
23
33
24
var cloudFileUrl = string . Concat ( fileLocation , accountName , fileUri , storageContainer , "/" , fileName ) ;
34
25
var uriToFile = new Uri ( cloudFileUrl ) ;
@@ -42,5 +33,37 @@ public string GetName()
42
33
return "Azure File Storage" ;
43
34
}
44
35
36
+ public bool IsEmpty ( )
37
+ {
38
+ var fileClient = GetFileClient ( ) ;
39
+ var rootDir = EnsureRootDirectory ( fileClient ) ;
40
+ var content = rootDir . ListFilesAndDirectories ( ) . ToList ( ) ;
41
+ return content . Count > 0 ;
42
+ }
43
+
44
+ private CloudFileClient GetFileClient ( )
45
+ {
46
+ string defaultEndpointsProtocol = Resources . AzureEndpointsProtocol ;
47
+ string accountName = Settings . Default . AzureAccountName ;
48
+ string accountKey = Settings . Default . AzureAccountKey ;
49
+
50
+ string connectionKey = string . Concat ( defaultEndpointsProtocol , "AccountName=" , accountName , ";AccountKey=" , accountKey , ";" ) ;
51
+
52
+ CloudStorageAccount storageAccount = CloudStorageAccount . Parse ( connectionKey ) ;
53
+ CloudFileClient fileClient = storageAccount . CreateCloudFileClient ( ) ;
54
+
55
+ return fileClient ;
56
+ }
57
+
58
+ private CloudFileDirectory EnsureRootDirectory ( CloudFileClient fileClient )
59
+ {
60
+ string storageContainer = Settings . Default . AzureStorageContainer ;
61
+ CloudFileShare share = fileClient . GetShareReference ( storageContainer ) ;
62
+ share . CreateIfNotExists ( ) ;
63
+
64
+ CloudFileDirectory rootDir = share . GetRootDirectoryReference ( ) ;
65
+ rootDir . CreateIfNotExists ( ) ;
66
+ return rootDir ;
67
+ }
45
68
}
46
69
}
0 commit comments