/// <summary>
        /// Creates and starts a new context.
        /// </summary>
        /// <param name="transactionScopeOption">
        /// The transaction scope option.
        /// </param>
        /// <param name="transactionOptions">
        /// The transaction options.
        /// </param>
        /// <returns>
        /// The <see cref="IContext"/>.
        /// </returns>
        public IContext StartNewContext(TransactionScopeOption transactionScopeOption, TransactionOptions transactionOptions)
        {
            if (!this.IsReady)
            {
                Log.Error(Resources.ContextFactoryNotReady);
                throw new BackstageException(Resources.ContextFactoryNotReady);
            }

            var context = new DefaultContext(this);
            context.Start(transactionScopeOption, transactionOptions);
            return context;
        }