Commit b3d64a80 authored by Savorboard's avatar Savorboard

implement SqlServerCapTransaction

parent d753b1a2
...@@ -25,7 +25,21 @@ namespace DotNetCore.CAP ...@@ -25,7 +25,21 @@ namespace DotNetCore.CAP
protected override void AddToSent(CapPublishedMessage msg) protected override void AddToSent(CapPublishedMessage msg)
{ {
var transactionKey = ((SqlConnection)((IDbTransaction)DbTransaction).Connection).ClientConnectionId; var dbTransaction = DbTransaction as IDbTransaction;
if (dbTransaction == null)
{
if (DbTransaction is IDbContextTransaction dbContextTransaction)
{
dbTransaction = dbContextTransaction.GetDbTransaction();
}
if (dbTransaction == null)
{
throw new ArgumentNullException(nameof(DbTransaction));
}
}
var transactionKey = ((SqlConnection)dbTransaction.Connection).ClientConnectionId;
if (_diagnosticProcessor.BufferList.TryGetValue(transactionKey, out var list)) if (_diagnosticProcessor.BufferList.TryGetValue(transactionKey, out var list))
{ {
list.Add(msg); list.Add(msg);
...@@ -39,12 +53,28 @@ namespace DotNetCore.CAP ...@@ -39,12 +53,28 @@ namespace DotNetCore.CAP
public override void Commit() public override void Commit()
{ {
throw new NotImplementedException(); switch (DbTransaction)
{
case IDbTransaction dbTransaction:
dbTransaction.Commit();
break;
case IDbContextTransaction dbContextTransaction:
dbContextTransaction.Commit();
break;
}
} }
public override void Rollback() public override void Rollback()
{ {
throw new NotImplementedException(); switch (DbTransaction)
{
case IDbTransaction dbTransaction:
dbTransaction.Rollback();
break;
case IDbContextTransaction dbContextTransaction:
dbContextTransaction.Rollback();
break;
}
} }
public override void Dispose() public override void Dispose()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment