diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs
deleted file mode 100644
index f792f6c9a9..0000000000
--- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoClientExtension.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using System;
-using System.Threading;
-using MongoDB.Driver;
-
-namespace Volo.Abp.MongoDB
-{
- ///
- /// TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- ///
- public static class MongoClientExtension
- {
- private static readonly TimeSpan InitialDelay = TimeSpan.FromMilliseconds(500);
- private static readonly TimeSpan MaxDelay = TimeSpan.FromSeconds(5000);
-
-
- public static void EnsureReplicationSetReady(this IMongoClient mongoClient)
- {
- var delay = InitialDelay;
- var database = mongoClient.GetDatabase("__dummy-db");
- try
- {
- while (true)
- {
- try
- {
- _ = database.GetCollection("__dummy");
- database.DropCollection("__dummy");
-
- var session = mongoClient.StartSession();
-
- try
- {
- session.StartTransaction();
- session.AbortTransaction();
- }
- finally
- {
- session.Dispose();
- }
-
- break;
- }
- catch (NotSupportedException)
- {
- }
-
- Thread.Sleep(delay);
- delay = Min(Double(delay), MaxDelay);
- }
- }
- finally
- {
- mongoClient.DropDatabase("__dummy-db");
- }
- }
-
- private static TimeSpan Min(TimeSpan left, TimeSpan right)
- {
- return new TimeSpan(Math.Min(left.Ticks, right.Ticks));
- }
-
- private static TimeSpan Double(TimeSpan timeSpan)
- {
- long ticks;
- try
- {
- ticks = checked(timeSpan.Ticks * 2);
- }
- catch (OverflowException)
- {
- if (timeSpan.Ticks >= 0)
- {
- return TimeSpan.MaxValue;
- }
-
- return TimeSpan.MinValue;
- }
-
- return new TimeSpan(ticks);
- }
-
- private sealed class DummyEntry
- {
- public int Id { get; set; }
- }
- }
-}
diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs
index f2b04a3a7f..17c46796f2 100644
--- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs
+++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbTestModule.cs
@@ -1,5 +1,9 @@
using System;
+using System.Linq;
+using System.Threading;
using Microsoft.Extensions.DependencyInjection;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
using Volo.Abp.TestApp;
@@ -32,6 +36,14 @@ namespace Volo.Abp.MongoDB
options.AddDefaultRepositories();
options.AddRepository();
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs
index a3c3b25cac..ee0de2b459 100644
--- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs
+++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs
index 37d43e4ee5..3617d8d243 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/AbpAuditLoggingMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,14 @@ namespace Volo.Abp.AuditLogging.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs
index 8d928e9f1e..d4d00736f1 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo/Abp/AuditLogging/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.AuditLogging.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.AuditLogging.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs
index 17f561c086..16fb856147 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/AbpBackgroundJobsMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,14 @@ namespace Volo.Abp.BackgroundJobs.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs
index 9e2f4a76a4..21d3e6f351 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo/Abp/BackgroundJobs/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.BackgroundJobs.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.BackgroundJobs.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs
index fa2e2f2936..015f68c89e 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/BlobStoringDatabaseMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -7,7 +11,7 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB
[DependsOn(
typeof(BlobStoringDatabaseTestBaseModule),
typeof(BlobStoringDatabaseMongoDbModule)
- )]
+ )]
public class BlobStoringDatabaseMongoDbTestModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
@@ -18,10 +22,16 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs
index 82335b13f3..e91ed78aa6 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.BlobStoring.Database.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.BlobStoring.Database.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs
index cac9cd748e..2c59493c08 100644
--- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs
+++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/BloggingMongoDBTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -18,10 +22,16 @@ namespace Volo.Blogging.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs
index 5198f4087d..cd53f1a8f5 100644
--- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs
+++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo/Blogging/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Blogging.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Blogging.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs
index 38f0179093..3aa2e3bd72 100644
--- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs
+++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/CmsKitMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -7,7 +11,7 @@ namespace Volo.CmsKit.MongoDB
[DependsOn(
typeof(CmsKitTestBaseModule),
typeof(CmsKitMongoDbModule)
- )]
+ )]
public class CmsKitMongoDbTestModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
@@ -18,10 +22,16 @@ namespace Volo.CmsKit.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs
index e7c60b7d8d..b867199547 100644
--- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs
+++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.CmsKit.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.CmsKit.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs
index 942d19071c..3ecebd228b 100644
--- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs
+++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/DocsMongoDBTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -18,10 +22,16 @@ namespace Volo.Docs.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs
index 90eab2fb2b..ba3debcdc2 100644
--- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs
+++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo/Docs/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Docs.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Docs.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs
index a1e24b829e..ae42da1813 100644
--- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs
+++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/AbpFeatureManagementMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,14 @@ namespace Volo.Abp.FeatureManagement.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
-}
\ No newline at end of file
+}
diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs
index 32cfd0dc5f..7a0b5ed54f 100644
--- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs
+++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo/Abp/FeatureManagement/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.FeatureManagement.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.FeatureManagement.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs
index 6cf462ccb9..b87971b00e 100644
--- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs
+++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbTestModule.cs
@@ -1,8 +1,11 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement.MongoDB;
-using Volo.Abp.Uow;
namespace Volo.Abp.Identity.MongoDB
{
@@ -10,7 +13,7 @@ namespace Volo.Abp.Identity.MongoDB
typeof(AbpIdentityTestBaseModule),
typeof(AbpPermissionManagementMongoDbModule),
typeof(AbpIdentityMongoDbModule)
- )]
+ )]
public class AbpIdentityMongoDbTestModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
@@ -21,11 +24,16 @@ namespace Volo.Abp.Identity.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs
index 4c919b6adc..6071001c97 100644
--- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs
+++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.Identity.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.Identity.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs
index f9762d9d4a..73e18457d2 100644
--- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs
+++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Identity.MongoDB;
using Volo.Abp.IdentityServer.MongoDB;
@@ -26,6 +30,14 @@ namespace Volo.Abp.IdentityServer
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs
index f974990a54..75ce977418 100644
--- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs
+++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.IdentityServer
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.IdentityServer
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs
index baa579403a..04d5d4aeca 100644
--- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs
+++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/AbpPermissionManagementMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -17,10 +21,16 @@ namespace Volo.Abp.PermissionManagement.MongoDB
"Db_" +
Guid.NewGuid().ToString("N") + "/?" + stringArray[1];
- Configure(options =>
- {
- options.ConnectionStrings.Default = connectionString;
- });
+ Configure(options => { options.ConnectionStrings.Default = connectionString; });
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() =>
+ client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs
index 385f9d3321..8ede0f98e4 100644
--- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs
+++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo/Abp/PermissionManagement/MongoDb/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.PermissionManagement.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.PermissionManagement.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs
index 8bc35e2724..b19c6f4201 100644
--- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs
+++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/AbpSettingManagementMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,14 @@ namespace Volo.Abp.SettingManagement.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs
index 1212bb90f0..e15891891b 100644
--- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs
+++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo/Abp/SettingManagement/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace Volo.Abp.SettingManagement.MongoDB
{
@@ -14,10 +12,6 @@ namespace Volo.Abp.SettingManagement.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs
index 29154cc271..2bcf5f89f3 100644
--- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs
+++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/AbpTenantManagementMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,14 @@ namespace Volo.Abp.TenantManagement.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/100
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs
index 6c95e09086..9eed11fb27 100644
--- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs
+++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo/Abp/TenantManagement/MongoDb/MongoDbFixture.cs
@@ -14,10 +14,6 @@ namespace Volo.Abp.TenantManagement.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs
index 565bd1f5ff..572788f8bc 100644
--- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs
+++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace MyCompanyName.MyProjectName.MongoDB
{
@@ -14,9 +12,6 @@ namespace MyCompanyName.MyProjectName.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs
index 386c82d5b9..8c1f5a1b60 100644
--- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs
+++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDb/MyProjectNameMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,13 @@ namespace MyCompanyName.MyProjectName.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}
diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs
index 55a7072a9d..3b41ceb151 100644
--- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs
+++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MongoDbFixture.cs
@@ -1,7 +1,5 @@
using System;
using Mongo2Go;
-using MongoDB.Driver;
-using Volo.Abp.MongoDB;
namespace MyCompanyName.MyProjectName.MongoDB
{
@@ -14,10 +12,6 @@ namespace MyCompanyName.MyProjectName.MongoDB
{
MongoDbRunner = MongoDbRunner.Start(singleNodeReplSet: true, singleNodeReplSetWaitTimeout: 10);
ConnectionString = MongoDbRunner.ConnectionString;
-
- //TODO It can be removed, when Mongo2Go solves this issue : https://github.com/Mongo2Go/Mongo2Go/issues/89
- var client = new MongoClient(MongoDbRunner.ConnectionString);
- client.EnsureReplicationSetReady();
}
public void Dispose()
diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs
index d074fe6b43..ecafd42fec 100644
--- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs
+++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MongoDB/MyProjectNameMongoDbTestModule.cs
@@ -1,4 +1,8 @@
using System;
+using System.Linq;
+using System.Threading;
+using MongoDB.Driver;
+using MongoDB.Driver.Core.Servers;
using Volo.Abp.Data;
using Volo.Abp.Modularity;
@@ -22,6 +26,13 @@ namespace MyCompanyName.MyProjectName.MongoDB
{
options.ConnectionStrings.Default = connectionString;
});
+
+ EnsureTransactionIsReady(new MongoClient(connectionString));
+ }
+
+ private void EnsureTransactionIsReady(MongoClient client)
+ {
+ SpinWait.SpinUntil(() => client.Cluster.Description.Servers.Any(s => s.State == ServerState.Connected && s.IsDataBearing));
}
}
}