void ScanningExcludeByName()
        {
            #region ScanningExcludeByName

            IExcludesBuilder excludesBuilder = AllAssemblies
                                               .Except("MyAssembly1.dll")
                                               .And("MyAssembly2.dll");
            Configure.With(excludesBuilder);

            #endregion
        }
        void ScanningExcludeByName(BusConfiguration busConfiguration)
        {
            #region ScanningExcludeByName

            IExcludesBuilder excludesBuilder = AllAssemblies
                                               .Except("MyAssembly1.dll")
                                               .And("MyAssembly2.dll");
            busConfiguration.AssembliesToScan(excludesBuilder);

            #endregion
        }
        void ScanningMixingIncludeAndExclude()
        {
            #region ScanningMixingIncludeAndExclude

            IExcludesBuilder excludesBuilder = AllAssemblies
                                               .Matching("NServiceBus")
                                               .And("MyCompany.")
                                               .Except("BadAssembly.dll");
            Configure.With(excludesBuilder);

            #endregion
        }
        void ScanningMixingIncludeAndExclude(BusConfiguration busConfiguration)
        {
            #region ScanningMixingIncludeAndExclude

            IExcludesBuilder excludesBuilder = AllAssemblies
                                               .Matching("NServiceBus")
                                               .And("MyCompany.")
                                               .Except("BadAssembly.dll");
            busConfiguration.AssembliesToScan(excludesBuilder);

            #endregion
        }
        public void ScanningUpgrade()
        {
            BusConfiguration busConfiguration = new BusConfiguration();

            #region 5to6ScanningUpgrade

            IExcludesBuilder excludesBuilder =
                AllAssemblies.Matching("NServiceBus")
                .And("MyCompany.")
                .Except("BadAssembly1.dll")
                .And("BadAssembly2.dll");
            busConfiguration.AssembliesToScan(excludesBuilder);

            #endregion
        }
        public static BusConfiguration CreateAzureBusConfiguration(string azureSBConnection, bool useOutbox, bool disableTx)
        {
            if (disableTx && useOutbox)
            {
                throw new ArgumentException("Cannot use Outbox when transactions are disabled");
            }

            BusConfiguration busConfiguration = CreateAmbientTxConfiguration();

            if (useOutbox)
            {
                busConfiguration.EnableOutbox();
                Console.WriteLine("Default Configuration overridden: Using Outbox");
            }

            if (disableTx)
            {
                // A validation error will occur if NServiceBus detects SQL Transport, even if it not being used.
                // Explicitly remove NServiceBus SQL Transport from the assembly scanning
                busConfiguration.Transactions().DisableDistributedTransactions();
                IExcludesBuilder excludesBuilder = AllAssemblies
                                                   .Except("NServiceBus.Transports.SQLServer.dll");
                busConfiguration.AssembliesToScan(excludesBuilder);

                // Using different databases only work when transaction are disabled
                ConfigureHibernate(busConfiguration, DB_SHARED_CONNECTION);

                Console.WriteLine("Default Configuration overridden: Using Transport transaction only");
            }
            else
            {
                ConfigureHibernate(busConfiguration, DB_BUSINESS_CONNECTION);

                busConfiguration.Transactions().Enable().EnableDistributedTransactions();

                Console.WriteLine("Default Configuration: Using Ambient Transactions");
            }

            busConfiguration.UseTransport <AzureServiceBusTransport>()
            .ConnectionString(azureSBConnection);

            Console.WriteLine("Default Configuration overridden: Using Azure Tranport");

            return(busConfiguration);
        }