23 lines
833 B
C#
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;
|
|
}
|
|
}
|
|
} |