private void SetCurrent(Transaction newCurrent)
{
if (((this.dependentTransaction == null) && (this.committableTransaction == null)) && (newCurrent != null))
{
this.dependentTransaction = newCurrent.DependentClone(DependentCloneOption.RollbackIfNotComplete);
}
switch (this.interopOption)
{
case EnterpriseServicesInteropOption.None:
this.threadContextData.CurrentTransaction = newCurrent;
return;
case EnterpriseServicesInteropOption.Automatic:
Transaction.VerifyEnterpriseServicesOk();
if (!Transaction.UseServiceDomainForCurrent())
{
this.threadContextData.CurrentTransaction = newCurrent;
return;
}
this.PushServiceDomain(newCurrent);
return;
case EnterpriseServicesInteropOption.Full:
Transaction.VerifyEnterpriseServicesOk();
this.PushServiceDomain(newCurrent);
return;
}
}