Esempio n. 1
0
        public IUnitOfWorkCompleteHandle Begin(UnitOfWorkOptions options)
        {
            options.FillDefaultsForNonProvidedOptions(_defaultOptions);

            if (options.Scope == TransactionScopeOption.Required && _currentUnitOfWorkProvider.Current != null)
            {
                return(new InnerUnitOfWorkCompleteHandle());
            }

            var uow = _iocResolver.Resolve <IUnitOfWork>();

            uow.Completed += (sender, args) =>
            {
                _currentUnitOfWorkProvider.Current = null;
            };

            uow.Failed += (sender, args) =>
            {
                _currentUnitOfWorkProvider.Current = null;
            };

            uow.Disposed += (sender, args) =>
            {
                _iocResolver.Release(uow);
            };

            uow.Begin(options);

            _currentUnitOfWorkProvider.Current = uow;

            return(uow);
        }
Esempio n. 2
0
        public IUnitOfWorkCompleteHandle Begin(UnitOfWorkOptions options)
        {
            options.FillDefaultsForNonProvidedOptions(defaultOptions);
            IDirectUnitOfWork uow = iocResolver.Resolve <IDirectUnitOfWork>();

            uow.Completed += (sender, args) =>
            {
                currentUnitOfWorkProvider.Current = null;
            };

            uow.Failed += (sender, args) =>
            {
                currentUnitOfWorkProvider.Current = null;
            };

            uow.Disposed += (sender, args) =>
            {
                iocResolver.Release(uow);
            };

            uow.Begin(options);
            currentUnitOfWorkProvider.Current = uow;
            return(uow);
        }