Browse Source

Add `MongoDBConnectionStringChecker`.

pull/15360/head
maliming 3 years ago
parent
commit
691b28eadb
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 2
      framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpConnectionStringCheckResult.cs
  2. 16
      framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringChecker.cs
  3. 4
      framework/src/Volo.Abp.Data/Volo/Abp/Data/IConnectionStringChecker.cs
  4. 5
      framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/ConnectionStrings/MySqlConnectionStringChecker.cs
  5. 5
      framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleDevartConnectionStringChecker.cs
  6. 5
      framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleConnectionStringChecker.cs
  7. 5
      framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/ConnectionStrings/NpgsqlConnectionStringChecker.cs
  8. 5
      framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqlServerConnectionStringChecker.cs
  9. 5
      framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqliteConnectionStringChecker.cs
  10. 30
      framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/ConnectionStrings/MongoDBConnectionStringChecker.cs
  11. 3
      framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpConnectionStringChecker_Tests.cs

2
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpConnectionStringCheckResult.cs → framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpConnectionStringCheckResult.cs

@ -1,4 +1,4 @@
namespace Volo.Abp.EntityFrameworkCore.ConnectionStrings;
namespace Volo.Abp.Data;
public class AbpConnectionStringCheckResult
{

16
framework/src/Volo.Abp.Data/Volo/Abp/Data/DefaultConnectionStringChecker.cs

@ -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
});
}
}

4
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/ConnectionStrings/IAbpConnectionStringChecker.cs → framework/src/Volo.Abp.Data/Volo/Abp/Data/IConnectionStringChecker.cs

@ -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);
}

5
framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreMySqlConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo/Abp/EntityFrameworkCore/ConnectionStrings/MySqlConnectionStringChecker.cs

@ -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)
{

5
framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreOracleDevartConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleDevartConnectionStringChecker.cs

@ -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)
{

5
framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreOracleConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/ConnectionStrings/OracleConnectionStringChecker.cs

@ -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)
{

5
framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreNpgsqlConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo/Abp/EntityFrameworkCore/ConnectionStrings/NpgsqlConnectionStringChecker.cs

@ -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)
{

5
framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreSqlServerConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqlServerConnectionStringChecker.cs

@ -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)
{

5
framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpEfCoreSqliteConnectionStringChecker.cs → framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo/Abp/EntityFrameworkCore/ConnectionStrings/SqliteConnectionStringChecker.cs

@ -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)
{

30
framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/ConnectionStrings/MongoDBConnectionStringChecker.cs

@ -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());
}
}
}

3
framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/ConnectionStrings/AbpConnectionStringChecker_Tests.cs

@ -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();

Loading…
Cancel
Save