1
1
using Dax . Metadata ;
2
+ using Dax . Model . Extractor . Data ;
2
3
using Microsoft . AnalysisServices . AdomdClient ;
4
+ using Newtonsoft . Json . Linq ;
3
5
using System ;
4
- using System . Data . OleDb ;
6
+ using System . Data . Common ;
7
+ using System . Globalization ;
5
8
using System . Linq ;
6
9
using Tom = Microsoft . AnalysisServices . Tabular ;
7
10
@@ -288,7 +291,7 @@ public static Dax.Metadata.Model GetDaxModel(string connectionString, string app
288
291
var database = GetDatabase ( connectionString ) ;
289
292
Tom . Model tomModel = database . Model ;
290
293
string databaseName = database . Name ;
291
- string serverName = GetDataSource ( connectionString ) ;
294
+ string serverName = ConnectionStringUtils . GetDataSource ( connectionString ) ;
292
295
293
296
var daxModel = TomExtractor . GetDaxModel ( tomModel , applicationName , applicationVersion ) ;
294
297
@@ -312,18 +315,6 @@ public static Dax.Metadata.Model GetDaxModel(string connectionString, string app
312
315
return daxModel ;
313
316
}
314
317
315
- private static string GetDataSource ( string connectionString )
316
- {
317
- var builder = new OleDbConnectionStringBuilder ( connectionString ) ;
318
- return builder . DataSource ;
319
- }
320
-
321
- private static string GetInitialCatalog ( string connectionString )
322
- {
323
- var builder = new OleDbConnectionStringBuilder ( connectionString ) ;
324
- builder . TryGetValue ( "Initial Catalog" , out object initialCatalog ) ;
325
- return initialCatalog . ToString ( ) ;
326
- }
327
318
public static Tom . Database GetDatabase ( string serverName , string databaseName )
328
319
{
329
320
Tom . Server server = new ( ) ;
@@ -337,7 +328,7 @@ public static Tom.Database GetDatabase(string connectionString)
337
328
{
338
329
Tom . Server server = new ( ) ;
339
330
server . Connect ( connectionString ) ;
340
- var databaseName = GetInitialCatalog ( connectionString ) ;
331
+ var databaseName = ConnectionStringUtils . GetInitialCatalog ( connectionString ) ;
341
332
Tom . Database db = server . Databases . FindByName ( databaseName ) ;
342
333
// if db is null either it does not exist or we do not have admin rights to it
343
334
return db ?? throw new ArgumentException ( $ "The database '{ databaseName } ' could not be found. Either it does not exist or you do not have admin rights to it.") ;
@@ -350,7 +341,7 @@ public static Dax.Metadata.Model GetDaxModel(string serverName, string databaseN
350
341
351
342
var daxModel = TomExtractor . GetDaxModel ( tomModel , applicationName , applicationVersion ) ;
352
343
353
- string connectionString = GetConnectionString ( serverName , databaseName ) ;
344
+ string connectionString = ConnectionStringUtils . GetConnectionString ( serverName , databaseName ) ;
354
345
355
346
using ( AdomdConnection connection = new ( connectionString ) )
356
347
{
@@ -371,22 +362,5 @@ public static Dax.Metadata.Model GetDaxModel(string serverName, string databaseN
371
362
}
372
363
return daxModel ;
373
364
}
374
-
375
- private static string GetConnectionString ( string dataSourceOrConnectionString , string databaseName )
376
- {
377
- OleDbConnectionStringBuilder csb = new ( ) ;
378
- try
379
- {
380
- csb . ConnectionString = dataSourceOrConnectionString ;
381
- }
382
- catch
383
- {
384
- // Assume servername
385
- csb . Provider = "MSOLAP" ;
386
- csb . DataSource = dataSourceOrConnectionString ;
387
- }
388
- csb [ "Initial Catalog" ] = databaseName ;
389
- return csb . ConnectionString ;
390
- }
391
365
}
392
366
}
0 commit comments