コード例 #1
0
    public async Task UnitOfWorkManager_Reservation_Test()
    {
        _unitOfWorkManager.Current.ShouldBeNull();

        using (var uow1 = _unitOfWorkManager.Reserve("Reservation1"))
        {
            _unitOfWorkManager.Current.ShouldBeNull();

            using (var uow2 = _unitOfWorkManager.Begin())
            {
                _unitOfWorkManager.Current.ShouldNotBeNull();
                _unitOfWorkManager.Current.Id.ShouldNotBe(uow1.Id);

                await uow2.CompleteAsync();
            }

            _unitOfWorkManager.Current.ShouldBeNull();

            _unitOfWorkManager.BeginReserved("Reservation1");

            _unitOfWorkManager.Current.ShouldNotBeNull();
            _unitOfWorkManager.Current.Id.ShouldBe(uow1.Id);

            await uow1.CompleteAsync();
        }

        _unitOfWorkManager.Current.ShouldBeNull();
    }
コード例 #2
0
        public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            using var uow = await unitOfWorkManager.Reserve();

            await next.Invoke(context);

            await uow.CommitAsync();
        }
コード例 #3
0
        public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            using (var uow = _unitOfWorkManager.Reserve(UnitOfWorkReservationName)) {
                await next(context);

                await uow.CompleteAsync(context.RequestAborted);
            }
        }
コード例 #4
0
        public async Task Invoke(HttpContext httpContext)
        {
            using (var uow = _unitOfWorkManager.Reserve(UnitOfWorkReservationName))
            {
                await _next(httpContext);

                await uow.CompleteAsync(httpContext.RequestAborted);
            }
        }