32 lines
711 B
C#
32 lines
711 B
C#
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|||
|
|
using SqlSugar;
|
|||
|
|
|
|||
|
|
namespace OpenAuth.WebApi.Model
|
|||
|
|
{
|
|||
|
|
public class TransactionFilter : IActionFilter
|
|||
|
|
{
|
|||
|
|
ISqlSugarClient _db;
|
|||
|
|
public TransactionFilter(ISqlSugarClient db)
|
|||
|
|
{
|
|||
|
|
_db = db;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void OnActionExecuting(ActionExecutingContext context)
|
|||
|
|
{
|
|||
|
|
_db.AsTenant().BeginTran();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void OnActionExecuted(ActionExecutedContext context)
|
|||
|
|
{
|
|||
|
|
if (context.Exception == null)
|
|||
|
|
{
|
|||
|
|
_db.AsTenant().CommitTran();
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
_db.AsTenant().RollbackTran();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|