Пример #1
0
        public void ExecuteStrategy()
        {
            int i = 0;

            try {
                ReprocessingConfiguration config = Domain.GetReprocessingConfiguration();
                config.DefaultExecuteStrategy = typeof(TestExecuteStrategy);
                Domain.Execute(
                    session => {
                    new Foo(session)
                    {
                        Name = "test"
                    };
                    i++;
                    if (i < 5)
                    {
                        new Foo(session)
                        {
                            Name = "test"
                        }
                    }
                    ;
                });
            }
            catch {
                Assert.That(i, Is.EqualTo(2));
            }
        }
Пример #2
0
        /// <summary>
        /// Gets the reprocessing configuration.
        /// </summary>
        /// <param name="domain">The domain.</param>
        /// <returns>The reprocessing configuration.</returns>
        public static ReprocessingConfiguration GetReprocessingConfiguration(this Domain domain)
        {
            var result = domain.Extensions.Get <ReprocessingConfiguration>();

            if (result == null)
            {
                result = ReprocessingConfiguration.Load();
                domain.Extensions.Set(result);
            }
            return(result);
        }
Пример #3
0
        /// <summary>
        /// Gets the reprocessing configuration from given <paramref name="configuration"/> and <paramref name="sectionName"/>.
        /// </summary>
        /// <param name="domain">The domain.</param>
        /// <param name="configuration">Non-default application configuration<see cref="System.Configuration.Configuration"/>.</param>
        /// <param name="sectionName">Non-default section.</param>
        /// <returns>The reprocessing configuration.</returns>
        public static ReprocessingConfiguration GetReprocessingConfiguration(this Domain domain, System.Configuration.Configuration configuration, string sectionName)
        {
            var result = domain.Extensions.Get <ReprocessingConfiguration>();

            if (result == null)
            {
                result = ReprocessingConfiguration.Load(configuration, sectionName);
                domain.Extensions.Set(result);
            }
            return(result);
        }
Пример #4
0
        internal static T ExecuteInternal <T>(
            this Domain domain,
            IsolationLevel isolationLevel,
            TransactionOpenMode?transactionOpenMode,
            IExecuteActionStrategy strategy,
            Func <Session, T> func)
        {
            ReprocessingConfiguration config = domain.GetReprocessingConfiguration();

            if (strategy == null)
            {
                strategy = ExecuteActionStrategy.GetSingleton(config.DefaultExecuteStrategy);
            }
            if (transactionOpenMode == null)
            {
                transactionOpenMode = config.DefaultTransactionOpenMode;
            }
            return(strategy.Execute(new ExecutionContext <T>(domain, isolationLevel, transactionOpenMode.Value, func)));
        }