|
18 | 18 | using DataStax.AstraDB.DataApi.Core; |
19 | 19 | using DataStax.AstraDB.DataApi.Core.Commands; |
20 | 20 | using DataStax.AstraDB.DataApi.Utils; |
| 21 | +using System; |
| 22 | +using System.Collections.Generic; |
| 23 | +using System.Linq; |
| 24 | +using System.Net.Http; |
| 25 | +using System.Threading.Tasks; |
21 | 26 |
|
22 | 27 | namespace DataStax.AstraDB.DataApi.Admin; |
23 | 28 |
|
@@ -45,9 +50,27 @@ public List<string> ListDatabaseNames() |
45 | 50 | return ListDatabases().Select(db => db.Info.Name).ToList(); |
46 | 51 | } |
47 | 52 |
|
| 53 | + public async Task<List<string>> ListDatabaseNamesAsync() |
| 54 | + { |
| 55 | + var databases = await ListDatabasesAsync().ConfigureAwait(false); |
| 56 | + return databases.Select(db => db.Info.Name).ToList(); |
| 57 | + } |
| 58 | + |
48 | 59 | public List<DatabaseInfo> ListDatabases() |
49 | 60 | { |
50 | | - throw new NotImplementedException(); |
| 61 | + return ListDatabasesAsync(true).ResultSync(); |
| 62 | + } |
| 63 | + |
| 64 | + public async Task<List<DatabaseInfo>> ListDatabasesAsync() |
| 65 | + { |
| 66 | + return await ListDatabasesAsync(false).ConfigureAwait(false); |
| 67 | + } |
| 68 | + |
| 69 | + internal async Task<List<DatabaseInfo>> ListDatabasesAsync(bool runSynchronously) |
| 70 | + { |
| 71 | + var command = CreateCommand().AddUrlPath("databases"); |
| 72 | + var response = await command.RunAsyncRaw<List<DatabaseInfo>>(HttpMethod.Get, runSynchronously).ConfigureAwait(false); |
| 73 | + return response; |
51 | 74 | } |
52 | 75 |
|
53 | 76 | public bool DatabaseExists(string name) |
@@ -139,7 +162,7 @@ internal async Task<DatabaseInfo> GetDatabaseInfoAsync(Guid id, bool runSynchron |
139 | 162 | { |
140 | 163 | Guard.NotEmpty(id, nameof(id)); |
141 | 164 | var command = CreateCommand().AddUrlPath("databases").AddUrlPath(id.ToString()); |
142 | | - var response = await command.RunAsyncRaw<DatabaseInfo>(System.Net.Http.HttpMethod.Get, runSynchronously).ConfigureAwait(false); |
| 165 | + var response = await command.RunAsyncRaw<DatabaseInfo>(HttpMethod.Get, runSynchronously).ConfigureAwait(false); |
143 | 166 | return response; |
144 | 167 | } |
145 | 168 |
|
|
0 commit comments