public override TResponse Execute <TRequest, TResponse>(IRequest <TResponse> request, Func <IRequest <TResponse>, TResponse> next) { _logger.Debug($"UnitOfWorkInterceptor started"); var unitOfWorkOptions = _uowOptionsBuilder.Build(request); _logger.Debug($"About to start UoW with IsolationLevel: {unitOfWorkOptions.IsolationLevel.ToString()}"); TResponse response; using (_unitOfWork = _unitOfWorkManager.Get(unitOfWorkOptions)) { response = next.Invoke(request); _unitOfWork.Commit(); } _unitOfWork = null; _logger.Debug($"UnitOfWorkInterceptor ended"); return(response); }
public override async Task <TResponse> ExecuteAsync <TRequest, TResponse>(TRequest request, CancellationToken cancellationToken, Func <TRequest, CancellationToken, Task <TResponse> > next) { _logger.Debug($"UnitOfWorkInterceptor started"); var unitOfWorkOptions = _uowOptionsBuilder.Build(request as IRequest <TResponse>); _logger.Debug($"About to start UoW with IsolationLevel: {unitOfWorkOptions.IsolationLevel.ToString()}"); TResponse response; using (_unitOfWork = _unitOfWorkManager.Get(unitOfWorkOptions)) { response = await next.Invoke(request, cancellationToken); _unitOfWork.Commit(); } _unitOfWork = null; _logger.Debug($"UnitOfWorkInterceptor ended"); return(response); }