Files
xDataService/Mongo/XMongoReadPreferenceResolver.cs
T
2024-01-25 04:41:17 +03:30

23 lines
833 B
C#

using MongoDB.Driver;
namespace xDataService.Mongo {
public static class XMongoReadPreferenceResolver {
public static ReadPreference GetEffectiveReadPreference (
IClientSessionHandle session,
ReadPreference explicitReadPreference,
ReadPreference defaultReadPreference) {
if (explicitReadPreference != null) {
return explicitReadPreference;
}
if (session.IsInTransaction) {
var transactionReadPreference = session.WrappedCoreSession.CurrentTransaction.TransactionOptions.ReadPreference;
if (transactionReadPreference != null) {
return transactionReadPreference;
}
}
return defaultReadPreference ?? ReadPreference.Primary;
}
}
}