Resolves #8740: Save changes for reserved transactions.

pull/10570/head
Halil İbrahim Kalkan 4 years ago
parent 760ba9f1ce
commit 045c5e617d

@ -41,7 +41,11 @@ namespace Volo.Abp.AspNetCore.Mvc.Uow
if (unitOfWorkManager.TryBeginReserved(UnitOfWork.UnitOfWorkReservationName, options))
{
var result = await next();
if (!Succeed(result))
if (Succeed(result))
{
await SaveChangesAsync(context, unitOfWorkManager);
}
else
{
await RollbackAsync(context, unitOfWorkManager);
}
@ -88,6 +92,15 @@ namespace Volo.Abp.AspNetCore.Mvc.Uow
await currentUow.RollbackAsync(context.HttpContext.RequestAborted);
}
}
private async Task SaveChangesAsync(ActionExecutingContext context, IUnitOfWorkManager unitOfWorkManager)
{
var currentUow = unitOfWorkManager.Current;
if (currentUow != null)
{
await currentUow.SaveChangesAsync(context.HttpContext.RequestAborted);
}
}
private static bool Succeed(ActionExecutedContext result)
{

@ -47,7 +47,11 @@ namespace Volo.Abp.AspNetCore.Mvc.Uow
if (unitOfWorkManager.TryBeginReserved(UnitOfWork.UnitOfWorkReservationName, options))
{
var result = await next();
if (!Succeed(result))
if (Succeed(result))
{
await SaveChangesAsync(context, unitOfWorkManager);
}
else
{
await RollbackAsync(context, unitOfWorkManager);
}
@ -94,6 +98,15 @@ namespace Volo.Abp.AspNetCore.Mvc.Uow
await currentUow.RollbackAsync(context.HttpContext.RequestAborted);
}
}
private async Task SaveChangesAsync(PageHandlerExecutingContext context, IUnitOfWorkManager unitOfWorkManager)
{
var currentUow = unitOfWorkManager.Current;
if (currentUow != null)
{
await currentUow.SaveChangesAsync(context.HttpContext.RequestAborted);
}
}
private static bool Succeed(PageHandlerExecutedContext result)
{

@ -35,6 +35,12 @@ namespace Volo.Abp.Uow
if (unitOfWorkManager.TryBeginReserved(UnitOfWork.UnitOfWorkReservationName, options))
{
await invocation.ProceedAsync();
if (unitOfWorkManager.Current != null)
{
await unitOfWorkManager.Current.SaveChangesAsync();
}
return;
}

Loading…
Cancel
Save