Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }