private IUnitOfWork GetRequiredUnitOfWork(PersistenceOptions persistenceOptions) { if (!AmbientContextManager.AmbientExists) { return(GetRequiredNewUnitOfWork(persistenceOptions)); } if (!AmbientContextManager.Ambient.IsTypeOf <CompositeUnitOfWork>()) { throw NContextPersistenceError.CompositeUnitOfWorkWithinDifferentAmbientType(AmbientContextManager.Ambient.UnitOfWork.GetType()) .ToException <InvalidOperationException>(); } // TODO: (DG) If ambient is a Composite do we retain or add to it? //if () //{ // var currentCompositeUnitOfWork = (CompositeUnitOfWork)AmbientContextManager.Ambient.UnitOfWork; // unitOfWork = new CompositeUnitOfWork(AmbientContextManager, currentCompositeUnitOfWork, _PersistenceOptions); // currentCompositeUnitOfWork.AddUnitOfWork(unitOfWork); // AmbientContextManager.AddUnitOfWork(unitOfWork); //} AmbientContextManager.RetainAmbient(); return(AmbientContextManager.Ambient.UnitOfWork); }
private IUnitOfWork GetRequiredNewUnitOfWork(PersistenceOptions persistenceOptions) { UnitOfWorkBase unitOfWork = new CompositeUnitOfWork(AmbientContextManager, persistenceOptions); AmbientContextManager.AddUnitOfWork(unitOfWork); return(unitOfWork); }
/// <summary> /// Initializes a new instance of the <see cref="PersistenceFactory" /> class. /// </summary> /// <param name="contextManagerFactory">The context manager factory.</param> /// <param name="persistenceOptions">The persistence options.</param> public PersistenceFactory(IAmbientContextManagerFactory contextManagerFactory, PersistenceOptions persistenceOptions) : base(contextManagerFactory) { _PersistenceOptions = persistenceOptions ?? new PersistenceOptions(); }
/// <summary> /// Initializes a new instance of the <see cref="PersistenceFactory"/> class. /// </summary> /// <param name="persistenceOptions">The persistence options.</param> /// <remarks></remarks> public PersistenceFactory(PersistenceOptions persistenceOptions) : this(null, persistenceOptions) { }
protected internal CompositeUnitOfWork(AmbientContextManagerBase ambientContextManager, UnitOfWorkBase parent, PersistenceOptions persistenceOptions) : base(ambientContextManager, parent, persistenceOptions.TransactionOptions) { _PersistenceOptions = persistenceOptions; }
/// <summary> /// Initializes a new instance of the <see cref="CompositeUnitOfWork" /> class. /// </summary> /// <param name="ambientContextManager">The ambient context manager.</param> /// <param name="persistenceOptions">The persistence options.</param> public CompositeUnitOfWork(AmbientContextManagerBase ambientContextManager, PersistenceOptions persistenceOptions) : this(ambientContextManager, null, persistenceOptions) { }
private IUnitOfWork GetRequiredNewUnitOfWork(PersistenceOptions persistenceOptions) { UnitOfWorkBase unitOfWork = new CompositeUnitOfWork(AmbientContextManager, persistenceOptions); AmbientContextManager.AddUnitOfWork(unitOfWork); return unitOfWork; }
private IUnitOfWork GetRequiredUnitOfWork(PersistenceOptions persistenceOptions) { if (!AmbientContextManager.AmbientExists) { return GetRequiredNewUnitOfWork(persistenceOptions); } if (!AmbientContextManager.Ambient.IsTypeOf<CompositeUnitOfWork>()) { throw NContextPersistenceError.CompositeUnitOfWorkWithinDifferentAmbientType(AmbientContextManager.Ambient.UnitOfWork.GetType()) .ToException<InvalidOperationException>(); } // TODO: (DG) If ambient is a Composite do we retain or add to it? //if () //{ // var currentCompositeUnitOfWork = (CompositeUnitOfWork)AmbientContextManager.Ambient.UnitOfWork; // unitOfWork = new CompositeUnitOfWork(AmbientContextManager, currentCompositeUnitOfWork, _PersistenceOptions); // currentCompositeUnitOfWork.AddUnitOfWork(unitOfWork); // AmbientContextManager.AddUnitOfWork(unitOfWork); //} AmbientContextManager.RetainAmbient(); return AmbientContextManager.Ambient.UnitOfWork; }