Esempio n. 1
0
        /// <summary>
        /// 向当前网站中注册配置信息。
        /// </summary>
        public static void Register()
        {
            // 初始化 IOC 配置
            var container = BuildUnityContainer();

            GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);

            // 加载缺省配置
            ConfigurationPipeline.ContainerConfiguration.Add(new AssemblyResolveConfiguration());
            ConfigurationPipeline.ContainerConfiguration.Add(new CustomConfigConfiguration());
            ConfigurationPipeline.ContainerConfiguration.Add(new UnityContainerConfiguration());

            ConfigurationPipeline.HttpConfiguration.Add(new AppConfigConfiguration());
            ConfigurationPipeline.HttpConfiguration.Add(new DefaultHttpRouteConfiguration());
            ConfigurationPipeline.HttpConfiguration.Add(new RequestConfiguration());
            ConfigurationPipeline.HttpConfiguration.Add(ConfigurationCreator.CreateHttpConfigurationFromDelegate(p =>
            {
                p.Filters.Add(new ReturnValueWrapperAttribute());
                p.Filters.Add(new ReturnExceptionWrapperAttribute());
            }));

            // 触发自定义初始化加载
            GlobalStarterX.Instance.RaiseEvent(p => p.Initialize());

            // 加载 IOC 配置
            ConfigurationPipeline.ContainerConfiguration.Aggregate((object)container, (x, y) => y.ConfigurateContainer(x));
            // 加载 其它 配置
            ConfigurationPipeline.HttpConfiguration.ForEach(p => p.Configurate(GlobalConfiguration.Configuration));

            // 触发配置完成事件
            GlobalStarterX.Instance.RaiseEvent(p => p.Complete());
        }
Esempio n. 2
0
        private static async Task Main(string[] args)
        {
            var config     = ConfigurationCreator.GetConfiguration();
            var routerName = config["NServiceBus:EndpointName"];

            Console.Title = routerName;

            var routerConfig  = new RouterConfiguration(routerName);
            var staticRouting = routerConfig.UseStaticRoutingProtocol();

            RouteFromAzureToAzure(config, routerConfig, staticRouting);
//            RouteFromLearningToAzure(routerConfig, config, staticRouting);
//            RouteFromAzureToLearning(routerConfig, config, staticRouting);

            routerConfig.AutoCreateQueues();
            routerConfig.PoisonQueueName = $"{routerName}-poison";

            var router = Router.Create(routerConfig);
            await router.Start().ConfigureAwait(false);

            Console.WriteLine("Press <enter> to exit");
            Console.ReadLine();

            await router.Stop().ConfigureAwait(false);
        }
        private void WhenICreate()
        {
            var serviceProvider = _serviceCollection.BuildServiceProvider();

            _creator = new ConfigurationCreator(_spcCreator.Object, _qosCreator.Object, _hhoCreator.Object, serviceProvider, _lboCreator.Object, _vCreator.Object);
            _result  = _creator.Create(_fileConfig, _reRoutes);
        }
Esempio n. 4
0
        public Configuration Build()
        {
            Guard.ArgumentNotNull(ConfigurationCreator, "Configuration Creator");

            Configuration configuration = null;

            //1. Create the Configuration
            configuration = ConfigurationCreator.Create();

            //2. Configure Custom Extensions
            if (CustomExtensionsConfigurator != null)
            {
                configuration = CustomExtensionsConfigurator.Configure(configuration);
            }

            //3. Add the mapping information
            if (MappingInfoLoader != null)
            {
                configuration = MappingInfoLoader.Load(configuration);
            }

            //4. Add Custom Mapping file
            string mappingFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CustomMapping.hbm.xml");

            if (File.Exists(mappingFile))
            {
                configuration.AddXmlFile(mappingFile);
            }

            return(configuration);
        }
Esempio n. 5
0
        public void Run(bool updateExtraFile)
        {
            if (updateExtraFile)
            {
                SourceAdapter.EditFile(m_extraFile.LocalPath);
            }

            if (Configuration == null)
            {
                // Generate a configuration file
                Configuration = ConfigurationCreator.CreateConfiguration(TestConstants.ConfigurationTemplate.SingleVCSession, TestEnvironment);
                ConfigurationCreator.CreateConfigurationFile(Configuration, ConfigurationFileName);

                foreach (var session in Configuration.SessionGroup.Sessions.Session)
                {
                    VCSession = session;
                    break;
                }
            }

            string directoryBeforeMigration = Environment.CurrentDirectory;

            StartMigration();

            Environment.CurrentDirectory = directoryBeforeMigration;
        }
Esempio n. 6
0
        private static async Task Main(string[] args)
        {
            configuration         = ConfigurationCreator.GetConfiguration();
            endpointConfiguration = new EndpointConfiguration(configuration["NServiceBus:EndpointName"]);

            ConfigureTransportAndRouting();
//            UseLearningTransport();

            ConfigureSerialization();
            ConfigureRecoverability();
            ConfigureLogging();

            endpointConfiguration.SendOnly();

            var endpointInstance = await Endpoint.Start(endpointConfiguration).ConfigureAwait(false);

            Console.WriteLine($"Sending command: {nameof(SendCommandFromEndpointA)}...");

            var sendOptions = new SendOptions();

            sendOptions.SetDestination("proto-router-endpoint-a");
            await endpointInstance.Send(new SendCommandFromEndpointA(), sendOptions).ConfigureAwait(false);

            await endpointInstance.Stop().ConfigureAwait(false);
        }
Esempio n. 7
0
        protected override void RunAndNoValidate(bool useExistingConfiguration)
        {
            if (!useExistingConfiguration || Configuration == null)
            {
                BuildFilterStringPair();

                // Generate a new configuration file
                Configuration = ConfigurationCreator.CreateConfiguration(TestConstants.ConfigurationTemplate.SingleWITSession, TestEnvironment);
                ConfigurationCreator.CreateConfigurationFile(Configuration, ConfigurationFileName);
            }

            // add validation step
            Configuration.LoadFromFile(ConfigurationFileName, true);
        }
Esempio n. 8
0
        public Dictionary <int, Configuration> BuildAll(NHibernateConfig config)
        {
            Guard.ArgumentNotNull(ConfigurationCreator, "Configuration Creator");

            Dictionary <int, Configuration> configurations = null;
            Dictionary <int, Configuration> result         = null;

            //1. Create the Configurations
            configurations = ConfigurationCreator.CreateAll(config);
            if (configurations != null)
            {
                result = new Dictionary <int, Configuration>();
                IEnumerator enumerator = configurations.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, Configuration> valuePair = (KeyValuePair <int, Configuration>)enumerator.Current;
                    Configuration configuration = valuePair.Value;
                    //2. Configure Custom Extensions
                    if (CustomExtensionsConfigurator != null)
                    {
                        configuration = CustomExtensionsConfigurator.Configure(configuration);
                    }

                    //3. Add the mapping information
                    if (MappingInfoLoader != null)
                    {
                        configuration = MappingInfoLoader.Load(configuration);
                    }

                    //4. Add Custom Mapping file
                    string mappingFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "CustomMapping.hbm.xml");
                    if (File.Exists(mappingFile))
                    {
                        configuration.AddXmlFile(mappingFile);
                    }

                    result.Add(valuePair.Key, configuration);
                }
            }


            return(result);
        }
Esempio n. 9
0
        protected override void RunAndValidate(bool useExistingConfiguration, bool AddOnBranchSourceNotFound)
        {
            if (!useExistingConfiguration || Configuration == null)
            {
                // Generate a new configuration file
                Configuration = ConfigurationCreator.CreateConfiguration(TestConstants.ConfigurationTemplate.SingleVCSession, TestEnvironment);

                // Try moving foreach here ...
                foreach (var session in Configuration.SessionGroup.Sessions.Session)
                {
                    VCSession = session;
                    break;
                }

                ConfigurationCreator.CreateConfigurationFile(Configuration, ConfigurationFileName);

                Configuration.LoadFromFile(ConfigurationFileName);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 引发当前程序集的初始化操作:该操作在初始化 IOC 基本配置,加载默认的配置管道后触发,触发索引【1】。
        /// </summary>
        public override void Initialize()
        {
            ConfigurationPipeline.ContainerConfiguration.Add(ConfigurationCreator.CreateContainerConfigurationFromDelegate(container =>
            {
                var unity = container as IUnityContainer;

                var validator = new DefaultAuthenticationTokenValidator()
                {
                    SlideDue = TimeSpan.FromHours(2),
                };

                unity.RegisterType <IIdentity, DefaultIdentity>("Default")
                .RegisterType <IIdentity, UserTokenController>("UserToken")
                .RegisterInstance <IAuthenticationTokenRegister>(validator)
                .RegisterInstance <IAuthenticationTokenValidator>(validator);

                return(container);
            }));
            ConfigurationPipeline.HttpConfiguration.Add(ConfigurationCreator.CreateHttpConfigurationFromDelegate(configuration => configuration.Filters.Add(new PrincipalAuthorizationFilter())));
        }
Esempio n. 11
0
        private static async Task Main(string[] args)
        {
            configuration         = ConfigurationCreator.GetConfiguration();
            endpointConfiguration = new EndpointConfiguration(configuration["NServiceBus:EndpointName"]);

            ConfigureTransportAndRouting();
//            UseLearningTransport();

            ConfigureSerialization();
            ConfigureRecoverability();
            ConfigureLogging();

            endpointConfiguration.EnableInstallers();

            var endpointInstance = await Endpoint.Start(endpointConfiguration)
                                   .ConfigureAwait(false);

            Console.WriteLine("Press <enter> to exit.");
            Console.ReadLine();

            await endpointInstance.Stop()
            .ConfigureAwait(false);
        }
Esempio n. 12
0
        //public Dictionary<int, Configuration> BuildAll(List<DataBaseTenant> dataBaseTenants)
        //{
        //    Guard.ArgumentNotNull(ConfigurationCreator, "Configuration Creator");

        //    Dictionary<int, Configuration> configurations = null;
        //    Dictionary<int, Configuration> result = null;

        //    //1. Create the Configurations
        //    configurations = ConfigurationCreator.CreateAll(dataBaseTenants);
        //    if (configurations != null)
        //    {
        //        result = new Dictionary<int, Configuration>();
        //        IEnumerator enumerator = configurations.GetEnumerator();
        //        while (enumerator.MoveNext())
        //        {
        //            KeyValuePair<int, Configuration> valuePair = (KeyValuePair<int, Configuration>)enumerator.Current;
        //            Configuration configuration = valuePair.Value;
        //            //2. Configure Custom Extensions
        //            if (CustomExtensionsConfigurator != null)
        //                configuration = CustomExtensionsConfigurator.Configure(configuration);

        //            //3. Add the mapping information
        //            if (MappingInfoLoader != null)
        //                configuration = MappingInfoLoader.Load(configuration);

        //            result.Add(valuePair.Key, configuration);
        //        }
        //    }


        //    return result;
        //}


        public Dictionary <int, Configuration> BuildAll(ICollection <DataBase> dataBases)
        {
            Guard.ArgumentNotNull(ConfigurationCreator, "Configuration Creator");

            Dictionary <int, Configuration> configurations = null;
            Dictionary <int, Configuration> result         = null;

            //1. Create the Configurations
            configurations = ConfigurationCreator.CreateAll(dataBases);
            if (configurations != null)
            {
                result = new Dictionary <int, Configuration>();
                IEnumerator enumerator = configurations.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, Configuration> valuePair = (KeyValuePair <int, Configuration>)enumerator.Current;
                    Configuration configuration = valuePair.Value;
                    //2. Configure Custom Extensions
                    if (CustomExtensionsConfigurator != null)
                    {
                        configuration = CustomExtensionsConfigurator.Configure(configuration);
                    }

                    //3. Add the mapping information
                    if (MappingInfoLoader != null)
                    {
                        configuration = MappingInfoLoader.Load(configuration);
                    }

                    result.Add(valuePair.Key, configuration);
                }
            }


            return(result);
        }
Esempio n. 13
0
        protected override void Load(ContainerBuilder builder)
        {
            // an input connection
            builder.Register((c, p) => c.Resolve <Cfg>(p).Input()).As <Connection>();

            // a cleaned up file info
            builder.Register((c, p) => {
                var connection = c.Resolve <Connection>();
                return(new FileInfo(Path.IsPathRooted(connection.File) ? connection.File : Path.Combine(AppDomain.CurrentDomain.BaseDirectory, connection.File)));
            }).As <FileInfo>();

            // an input connection context
            builder.Register <IConnectionContext>((c, p) => new ConnectionContext(c.Resolve <IContext>(p), c.Resolve <Connection>())).As <IConnectionContext>();

            // a schema reader for file or excel
            builder.Register <ISchemaReader>((c, p) => {
                var context = c.Resolve <IConnectionContext>();

                var cfg = context.Connection.Provider == "file" ?
                          new FileInspection(context, c.Resolve <FileInfo>()).Create() :
                          new ExcelInspection(context, c.Resolve <FileInfo>()).Create();
                var process      = c.Resolve <Process>(p.Concat(new[] { new NamedParameter("cfg", cfg) }));
                process.Pipeline = "parallel.linq";

                return(new SchemaReader(context, new RunTimeRunner(context), process));
            }).As <ISchemaReader>();


            builder.Register <IRunTimeExecute>((c, p) => new RunTimeExecutor(c.Resolve <IConnectionContext>())).As <IRunTimeExecute>();

            // when you resolve a process, you need to add a cfg parameter
            builder.Register((c, p) => {
                var parameters = new List <global::Autofac.Core.Parameter>();
                parameters.AddRange(p);
                var cfg = new ConfigurationCreator(c.Resolve <Cfg>(p), c.Resolve <ISchemaReader>(p)).Create();
                parameters.Add(new NamedParameter("cfg", cfg));
                return(c.Resolve <Process>(parameters));
            }).Named <Process>("import");

            // Connection Factory
            builder.Register <IConnectionFactory>(c => {
                var output = c.Resolve <Cfg>().Output();
                switch (output.Provider)
                {
                case "sqlserver":
                    return(new SqlServerConnectionFactory(output));

                case "mysql":
                    return(new MySqlConnectionFactory(output));

                case "postgresql":
                    return(new PostgreSqlConnectionFactory(output));

                case "sqlite":
                    return(new SqLiteConnectionFactory(output));

                default:
                    return(new NullConnectionFactory());
                }
            }).As <IConnectionFactory>().InstancePerLifetimeScope();


            // Final product is Importer
            builder.Register((c, p) => {
                var context = c.Resolve <IConnectionContext>();
                var key     = c.Resolve <Request>(p).ToKey(c.Resolve <Cfg>());
                var process = c.Resolve <Process>();
                if (Cache.ContainsKey(key))
                {
                    process.Load(Cache[key]);
                    context.Info("Using cached delimiter, header, type, and string-length inspection.");
                }
                else
                {
                    process    = c.ResolveNamed <Process>("import", p);
                    Cache[key] = process.Serialize();
                    context.Info("Cached delimiter, header, type, and string-length inspection.");
                }
                return(new Importer(process, c.Resolve <IRunTimeExecute>(p), c.Resolve <IConnectionFactory>()));
            }).As <Importer>();
        }