Browse Source
Add `MongoDBConnectionStringChecker`.
pull/15360/head
maliming
3 years ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
11 changed files with
69 additions and
16 deletions
-
framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpConnectionStringCheckResult.cs
-
framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringChecker.cs
-
framework/src/Volo.Abp.Data/Volo/Abp/Data/IConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/ConnectionStrings/MySqlConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleDevartConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/ConnectionStrings/NpgsqlConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqlServerConnectionStringChecker.cs
-
framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqliteConnectionStringChecker.cs
-
framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/ConnectionStrings/MongoDBConnectionStringChecker.cs
-
framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpConnectionStringChecker_Tests.cs
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
namespace Volo.Abp.Data; |
|
|
|
|
|
|
|
public class AbpConnectionStringCheckResult |
|
|
|
{ |
|
|
|
@ -0,0 +1,16 @@ |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.Data; |
|
|
|
|
|
|
|
public class DefaultConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
return Task.FromResult(new AbpConnectionStringCheckResult |
|
|
|
{ |
|
|
|
Connected = false, |
|
|
|
DatabaseExists = false |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1,8 +1,8 @@ |
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
namespace Volo.Abp.Data; |
|
|
|
|
|
|
|
public interface IAbpConnectionStringChecker |
|
|
|
public interface IConnectionStringChecker |
|
|
|
{ |
|
|
|
Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString); |
|
|
|
} |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using MySqlConnector; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreMySqlConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class MySqlConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Devart.Data.Oracle; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreOracleDevartConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class OracleDevartConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Oracle.ManagedDataAccess.Client; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreOracleConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class OracleConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Npgsql; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreNpgsqlConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class NpgsqlConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Microsoft.Data.SqlClient; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreSqlServerConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class SqlServerConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -1,12 +1,13 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Microsoft.Data.Sqlite; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
|
|
|
|
[ExposeServices(typeof(IAbpConnectionStringChecker))] |
|
|
|
public class AbpEfCoreSqliteConnectionStringChecker : IAbpConnectionStringChecker, ITransientDependency |
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class SqliteConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual async Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
@ -0,0 +1,30 @@ |
|
|
|
using System; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using MongoDB.Driver; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
|
|
|
|
namespace Volo.Abp.MongoDB.ConnectionStrings; |
|
|
|
|
|
|
|
[Dependency(ReplaceServices = true)] |
|
|
|
public class MongoDBConnectionStringChecker : IConnectionStringChecker, ITransientDependency |
|
|
|
{ |
|
|
|
public virtual Task<AbpConnectionStringCheckResult> CheckAsync(string connectionString) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
var mongoUrl = MongoUrl.Create(connectionString); |
|
|
|
var client = new MongoClient(mongoUrl); |
|
|
|
client.GetDatabase(mongoUrl.DatabaseName); |
|
|
|
return Task.FromResult(new AbpConnectionStringCheckResult() |
|
|
|
{ |
|
|
|
Connected = true, |
|
|
|
DatabaseExists = true |
|
|
|
}); |
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
return Task.FromResult(new AbpConnectionStringCheckResult()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -1,5 +1,6 @@ |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Shouldly; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Xunit; |
|
|
|
|
|
|
|
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings; |
|
|
|
@ -9,7 +10,7 @@ public class AbpConnectionStringChecker_Tests : EntityFrameworkCoreTestBase |
|
|
|
[Fact] |
|
|
|
public async Task IsValidAsync() |
|
|
|
{ |
|
|
|
var connectionStringChecker = GetRequiredService<IAbpConnectionStringChecker>(); |
|
|
|
var connectionStringChecker = GetRequiredService<IConnectionStringChecker>(); |
|
|
|
var result = await connectionStringChecker.CheckAsync(@"Data Source=:memory:"); |
|
|
|
result.Connected.ShouldBeTrue(); |
|
|
|
result.DatabaseExists.ShouldBeTrue(); |
|
|
|
|