internal AbpUnitOfWorkOptions Normalize(AbpUnitOfWorkOptions options) { if (options.IsolationLevel == null) { options.IsolationLevel = IsolationLevel; } if (options.Timeout == null) { options.Timeout = Timeout; } return(options); }
private AbpUnitOfWorkOptions CreateOptions(IAbpMethodInvocation invocation, [CanBeNull] UnitOfWorkAttribute unitOfWorkAttribute) { var options = new AbpUnitOfWorkOptions(); unitOfWorkAttribute?.SetOptions(options); if (unitOfWorkAttribute?.IsTransactional == null) { options.IsTransactional = _defaultOptions.CalculateIsTransactional( autoValue: !invocation.Method.Name.StartsWith("Get", StringComparison.InvariantCultureIgnoreCase) ); } return(options); }
public IUnitOfWork Begin(AbpUnitOfWorkOptions options, bool requiresNew = false) { Check.NotNull(options, nameof(options)); var currentUow = Current; if (currentUow != null && !requiresNew) { return(new ChildUnitOfWork(currentUow)); } var unitOfWork = CreateNewUnitOfWork(); unitOfWork.Initialize(options); return(unitOfWork); }
private AbpUnitOfWorkOptions CreateOptions(IServiceProvider serviceProvider, IAbpMethodInvocation invocation, [CanBeNull] UnitOfWorkAttribute unitOfWorkAttribute) { var options = new AbpUnitOfWorkOptions(); unitOfWorkAttribute?.SetOptions(options); if (unitOfWorkAttribute?.IsTransactional == null) { var defaultOptions = serviceProvider.GetRequiredService <IOptions <AbpUnitOfWorkDefaultOptions> >().Value; options.IsTransactional = defaultOptions.CalculateIsTransactional( autoValue: serviceProvider.GetRequiredService <IUnitOfWorkTransactionBehaviourProvider>().IsTransactional ?? !invocation.Method.Name.StartsWith("Get", StringComparison.InvariantCultureIgnoreCase) ); } return(options); }
//TODO: More constructors! public virtual void SetOptions(AbpUnitOfWorkOptions options) { if (IsTransactional.HasValue) { options.IsTransactional = IsTransactional.Value; } if (Timeout.HasValue) { options.Timeout = Timeout; } if (IsolationLevel.HasValue) { options.IsolationLevel = IsolationLevel; } }
public bool TryBeginReserved(string reservationName, AbpUnitOfWorkOptions options) { Check.NotNull(reservationName, nameof(reservationName)); var uow = _ambientUnitOfWork.UnitOfWork; //Find reserved unit of work starting from current and going to outers while (uow != null && !uow.IsReservedFor(reservationName)) { uow = uow.Outer; } if (uow == null) { return(false); } uow.Initialize(options); return(true); }
public void Initialize(AbpUnitOfWorkOptions options) { _parent.Initialize(options); }