Beispiel #1
0
        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);
        }
Beispiel #2
0
        private IUnitOfWork GetRequiredNewUnitOfWork(PersistenceOptions persistenceOptions)
        {
            UnitOfWorkBase unitOfWork = new CompositeUnitOfWork(AmbientContextManager, persistenceOptions);

            AmbientContextManager.AddUnitOfWork(unitOfWork);

            return(unitOfWork);
        }
Beispiel #3
0
 /// <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();
 }
Beispiel #4
0
 /// <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)
 {
 }
 /// <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)
 {
 }
        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;
        }