ReceiveStrategy SelectReceiveStrategy(TransportTransactionMode minimumConsistencyGuarantee, TransactionOptions transactionOptions)
{
switch (minimumConsistencyGuarantee)
{
case TransportTransactionMode.TransactionScope:
return new TransactionScopeStrategy(transactionOptions, new MsmqFailureInfoStorage(1000));
case TransportTransactionMode.SendsAtomicWithReceive:
return new SendsAtomicWithReceiveNativeTransactionStrategy(new MsmqFailureInfoStorage(1000));
case TransportTransactionMode.ReceiveOnly:
return new ReceiveOnlyNativeTransactionStrategy(new MsmqFailureInfoStorage(1000));
case TransportTransactionMode.None:
return new NoTransactionStrategy();
default:
throw new NotSupportedException($"TransportTransactionMode {minimumConsistencyGuarantee} is not supported by the MSMQ transport");
}
}