Example #1
0
        public void Intercept(IInvocation invocation)
        {
            var methodIsolationLevel  = (int)invocation.GetIsolationLevel();
            var currentIsolationLevel = (int)this._unitOfWorkManager.Current.TransactionOptions.IsolationLevel;

            if (methodIsolationLevel < currentIsolationLevel)
            {
                throw new IsolationLevelException();
            }

            invocation.Proceed();
        }
        void IInterceptor.Intercept(IInvocation invocation)
        {
            CheckPermission(invocation);

            using (var uow = _unitOfWorkMananger.Begin(invocation.GetIsolationLevel()))
            {
                invocation.Proceed();

                Audit(invocation);

                uow.Complete();
            }
        }