示例#1
0
        /// <summary>
        /// 客户端
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="listenPoint"></param>
        /// <param name="configFileClient"></param>
        /// <returns></returns>
        public static ApplicationStartup UseConfigClient(this ApplicationStartup startup, EndPoint listenPoint, out ConfigFileClient configFileClient)
        {
            var client = new ConfigFileClient(listenPoint);

            configFileClient = client;
            return(startup);
        }
示例#2
0
        public async Task BeforeEachTest()
        {
            const string connectionStringEnvironmentVariable =
                "ASPNETCORE_SampleProject_IntegrationTests_ConnectionString";

            ConnectionString = Environment.GetEnvironmentVariable(connectionStringEnvironmentVariable);
            if (ConnectionString == null)
            {
                throw new ApplicationException(
                          $"Define connection string to integration tests database using environment variable: {connectionStringEnvironmentVariable}");
            }

            await using var sqlConnection = new SqlConnection(ConnectionString);

            await ClearDatabase(sqlConnection);

            EmailsSettings = new EmailsSettings {
                FromAddressEmail = "*****@*****.**"
            };

            EmailSender = Substitute.For <IEmailSender>();

            ApplicationStartup.Initialize(
                new ServiceCollection(),
                ConnectionString,
                new CacheStore(),
                EmailSender,
                EmailsSettings,
                runQuartz: false);
        }
示例#3
0
        /// <summary>
        /// 服务端
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="shareFiles"></param>
        /// <param name="shareFileEventHandler"></param>
        /// <param name="fileChangeTimer">fileChangeTimer</param>
        /// <param name="appFiles"></param>
        /// <param name="keyValueFinder"></param>
        /// <param name="listenPoint"></param>
        /// <param name="configFileServer"></param>
        /// <param name="configurationWatcher"></param>
        /// <returns></returns>
        public static ApplicationStartup UseJsonConfigServer(this ApplicationStartup startup, IEnumerable <ConfigFileInfo> shareFiles, EventHandler <ShareFileEventArgs> shareFileEventHandler, IEnumerable <ConfigFileInfo> appFiles, ICustomKeyValueFinder keyValueFinder, EndPoint listenPoint, TimeSpan fileChangeTimer, out ConfigFileServer configFileServer, out ConfigurationWatcher configurationWatcher)
        {
            var shareBuilders = shareFiles == null ? new List <ShareConfigurationBuilder>() : shareFiles.Select(ta => new Never.Configuration.ConfigCenter.ShareConfigurationBuilder(ta)).ToList();

            shareBuilders.UseForEach(builder =>
            {
                if (shareFileEventHandler != null)
                {
                    builder.OnBuilding += shareFileEventHandler;
                }

                builder.Build();
            });

            var jsonBuilders = appFiles == null ? new List <JsonConfigurationBuilder>() : appFiles.Select(ta => new Never.Configuration.ConfigCenter.JsonConfigurationBuilder(shareBuilders, ta, keyValueFinder)).ToList();

            jsonBuilders.UseForEach(builder => { builder.Build(); });

            configurationWatcher = new Never.Configuration.ConfigCenter.ConfigurationWatcher(shareBuilders, jsonBuilders, keyValueFinder, fileChangeTimer)
            {
                ShareFileEventHandler = shareFileEventHandler,
            };
            var server = new Never.Configuration.ConfigCenter.Remoting.ConfigFileServer(listenPoint, configurationWatcher);

            configFileServer = server;
            return(startup);
        }
示例#4
0
        /// <summary>
        /// 启动工作流
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="executingRepository"></param>
        /// <param name="jsonSerializer"></param>
        /// <param name="templateRepository"></param>
        /// <param name="serialTaskStrategy"></param>
        /// <param name="taskschedStrategy"></param>
        /// <param name="environmentInit"></param>
        /// <returns></returns>
        public static ApplicationStartup UseWorlFlow(this ApplicationStartup startup,
                                                     ITemplateRepository templateRepository,
                                                     IExecutingRepository executingRepository,
                                                     IJsonSerializer jsonSerializer,
                                                     ITaskschedStrategy taskschedStrategy,
                                                     ISerialTaskStrategy serialTaskStrategy,
                                                     Action <IWorkFlowEngine> environmentInit)
        {
            if (startup.Items.ContainsKey("UseWorlFlow"))
            {
                return(startup);
            }

            startup.ServiceRegister.RegisterInstance <ITemplateRepository>(templateRepository);
            startup.ServiceRegister.RegisterInstance <IExecutingRepository>(executingRepository);

            var engine = new WorkFlowEngine(templateRepository, executingRepository, jsonSerializer, taskschedStrategy ?? new DefaultTaskschedStrategy(), serialTaskStrategy ?? new DefaultSerialTaskStrategy())
            {
                ApplicationStartup = startup,
            };

            startup.ServiceRegister.RegisterInstance <IWorkFlowEngine>(engine);
            startup.RegisterStartService(new StartupService(environmentInit, engine));
            startup.Items["UseWorlFlow"] = "true";
            return(startup);
        }
示例#5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            services.AddHttpContextAccessor();
            services.AddDbContext <LocationContext>(options =>
            {
                var conn = Configuration.GetConnectionString("DefaultConnection");
                options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"),
                                  npSqlOptions =>
                {
                    npSqlOptions.CommandTimeout(3300);
                });
            });
            services.AddSwaggerDocumentation();
            services.AddProblemDetails(x =>
            {
                // x.Map<InvalidCommandException>(ex => new InvalidCommandProblemDetails(ex));
                x.Map <BusinessRuleValidationException>(ex => new BusinessRuleValidationExceptionProblemDetails(ex));
            });

            services.AddHttpContextAccessor();
            var serviceProvider = services.BuildServiceProvider();

            IExecutionContextAccessor executionContextAccessor = new ExecutionContextAccessor(serviceProvider.GetService <IHttpContextAccessor>());

            services.AddAutoMapper(cfg =>
            {
                cfg.AddMaps(AppDomain.CurrentDomain.GetAssemblies());
            }, AppDomain.CurrentDomain.GetAssemblies());

            return(ApplicationStartup.Initialize(services, executionContextAccessor));
        }
示例#6
0
        private IServiceProvider InitializeAutofac(IServiceCollection services)
        {
            var serviceProvider = services.BuildServiceProvider();

            IExecutionContextAccessor executionContextAccessor =
                new ExecutionContextAccessor(serviceProvider.GetService <IHttpContextAccessor>());

            var children                 = this._configuration.GetSection("Caching").GetChildren();
            var cachingConfiguration     = children.ToDictionary(child => child.Key, child => TimeSpan.Parse(child.Value));
            var emailsSettings           = _configuration.GetSection("EmailsSettings").Get <EmailsSettings>();
            var azureBlobStorageSettings =
                _configuration.GetSection("AzureBlobStorageSettings").Get <AzureBlobStorageSettings>();
            var memoryCache = serviceProvider.GetService <IMemoryCache>();

            return(ApplicationStartup.Initialize(
                       services,
                       this._configuration[TreesConnectionString],
                       new MemoryCacheStore(memoryCache, cachingConfiguration),
                       null,
                       null,
                       emailsSettings,
                       azureBlobStorageSettings,
                       _logger,
                       executionContextAccessor,
                       null));
        }
示例#7
0
        public static void Start()
        {
            ApplicationStartup.Initialize();
            var container = IoC.Container;

            using (container.OptimizeDependencyResolution())
            {
                var register = new SerializerRegister();
                container.Register <IPresentationUserSettings, IUserSettings, ICoreUserSettings, BatchUserSettings>(LifeStyle.Transient);

                container.AddRegister(x =>
                {
                    x.FromType <CoreRegister>();
                    x.FromType <OSPSuite.Core.CoreRegister>();
                    x.FromType <BatchRegister>();
                    x.FromType <InfrastructureRegister>();
                    x.FromType <SBMLImportRegister>();
                    x.FromInstance(new PresentationRegister(false));
                    x.FromInstance(register);
                });
                register.PerformMappingForSerializerIn(container);


                container.Register <IJournalDiagramManagerFactory, BatchJournalDiagramManagerFactory>();
                container.Register <IDiagramModelToXmlMapper, BatchDiagramModelToXmlMapper>(LifeStyle.Singleton);
                container.Register <IDiagramModel, BatchDiagramModel>(LifeStyle.Singleton);
            }
            setupDimensions(container);
            setupCalculationMethods(container);
        }
示例#8
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddMemoryCache();

            services.AddSwaggerDocumentation();



            services.AddHttpContextAccessor();
            var serviceProvider = services.BuildServiceProvider();

            IExecutionContextAccessor executionContextAccessor = new ExecutionContextAccessor(serviceProvider.GetService <IHttpContextAccessor>());

            var children             = this._configuration.GetSection("Caching").GetChildren();
            var cachingConfiguration = children.ToDictionary(child => child.Key, child => TimeSpan.Parse(child.Value));
            var emailsSettings       = "";
            var memoryCache          = serviceProvider.GetService <IMemoryCache>();

            return(ApplicationStartup.Initialize(
                       services,
                       this._configuration[OrdersConnectionString],
                       new MemoryCacheStore(memoryCache, cachingConfiguration),
                       _logger,
                       executionContextAccessor));
        }
示例#9
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddControllers()
            .AddNewtonsoftJson(options =>
            {
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                options.SerializerSettings.ContractResolver      = new CamelCasePropertyNamesContractResolver();
            });

            services.CorsConfigure();
            services.ConfigureProblemDetails(_env.IsProduction());
            services.AddSwaggerDocumentation();

            services.AddHttpContextAccessor();
            services.AuthenticationConfigure(_configuration.GetSection("AppSettings").GetSection("JWT").GetValue <string>("SecretKey"));

            var serviceProvider = services.BuildServiceProvider();

            IExecutionContextAccessor executionContextAccessor = new ExecutionContextAccessor(serviceProvider.GetService <IHttpContextAccessor>());

            return(ApplicationStartup.Initialize(
                       services,
                       _configuration.GetValue <string>("ConnectionString"),
                       _configuration.GetSection("AppSettings").GetSection("JWT").GetValue <string>("SecretKey"),
                       _configuration.GetSection("AppSettings").GetSection("JWT").GetValue <int>("ExpireMinutes"),
                       executionContextAccessor,
                       _logger
                       ));
        }
示例#10
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddMemoryCache();

            services.AddSwaggerDocumentation();

            //services.AddMediatR(typeof(RegisterCustomerCommandHandler).GetTypeInfo().Assembly);

            services
            .AddDbContext <OrdersContext>(options =>
            {
                options
                .ReplaceService <IValueConverterSelector, StronglyTypedIdValueConverterSelector>()

                .UseSqlServer(this._configuration[OrdersConnectionString]);
            });

            services.AddProblemDetails(x =>
            {
                x.Map <InvalidCommandException>(ex => new InvalidCommandProblemDetails(ex));
                x.Map <BusinessRuleValidationException>(ex => new BusinessRuleValidationExceptionProblemDetails(ex));
            });

            var children             = this._configuration.GetSection("Caching").GetChildren();
            var cachingConfiguration = children.ToDictionary(child => child.Key, child => TimeSpan.Parse(child.Value));

            ApplicationStartup.Initialize(
                services,
                this._configuration[OrdersConnectionString],
                cachingConfiguration);
        }
示例#11
0
 public static void RegisterCallBack <T>(ServiceDescriptor serviceDescriptor, ApplicationStartup startup)
 {
     ((Never.IoC.Injections.ServiceRegister)startup.ServiceRegister).RegisterCallBack <T>(string.Empty, Convert(serviceDescriptor.Lifetime), (x) =>
     {
         return((T)serviceDescriptor.ImplementationFactory.Invoke(new ApiServiceProvider(x)));
     });
 }
示例#12
0
        private static void setupCalculationMethods(IContainer container)
        {
            var configuration = IoC.Resolve <IMoBiConfiguration>();

            configuration.CalculationMethodRepositoryFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppConstants.SpecialFileNames.CALCULATION_METHOD_REPOSITORY_FILE_NAME);
            ApplicationStartup.InitCalculationMethodRepository(container);
        }
示例#13
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services
            .AddControllers(c =>
            {
                c.Conventions.Add(new ApiExplorerGroupPerVersionConvention());
            })
            .AddNewtonsoftJson(opt =>
            {
                opt.SerializerSettings.ContractResolver = new JsonApiContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                };
                opt.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            });

            services
            .AddVersioningSystem()
            .AddSwaggerDocumentation()
            .AddProblemDetailsMiddleware()
            .AddHealthChecks();

            services.AddCors(options =>
            {
                options.AddPolicy("EnableCORS", builder =>
                {
                    builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().Build();
                });
            });

            services.Configure <ProjectConfig>(Configuration.GetSection("ProjectConfig"));

            return(ApplicationStartup.Initialize(
                       services, Configuration));
        }
示例#14
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services
            .AddControllers()
            .AddNewtonsoftJson(opt =>
            {
                opt.SerializerSettings.ContractResolver = new JsonApiContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                };
                opt.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            });


            services
            .AddVersioningSystem()
            .AddSwaggerDocumentation()
            .AddProblemDetailsMiddleware()
            .AddHealthChecks();

            services.Configure <InterestRateApiQueryConfig>(Configuration.GetSection("InterestRateApiQueryConfig"));
            services.Configure <ProjectConfig>(Configuration.GetSection("ProjectConfig"));

            services.AddScoped <IInterestRateQueryApi, InterestRateQueryApi>();

            return(ApplicationStartup.Initialize(
                       services, Configuration));
        }
示例#15
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            var bootstrapper = new ApplicationStartup();

            bootstrapper.Run();
        }
示例#16
0
        public ApplicationStartup Populate(ApplicationStartup startup)
        {
            startup.ServiceRegister.RegisterType <ApiServiceProvider, IServiceProvider>(string.Empty, Never.IoC.ComponentLifeStyle.Scoped);
            startup.ServiceRegister.RegisterType <ApiServiceScopeFactory, IServiceScopeFactory>(string.Empty, Never.IoC.ComponentLifeStyle.Singleton);

            foreach (var i in this.serviceCollection)
            {
                if (i.ImplementationInstance != null)
                {
                    startup.ServiceRegister.RegisterInstance(i.ImplementationInstance, i.ServiceType, string.Empty);
                    continue;
                }
                else if (i.ImplementationFactory != null && startup.ServiceRegister is Never.IoC.Injections.ServiceRegister)
                {
                    var @delegate = (Action <ServiceDescriptor, ApplicationStartup>)Delegate.CreateDelegate(typeof(Action <ServiceDescriptor, ApplicationStartup>), typeof(ApiServiceCollection).GetMethod("RegisterCallBack").MakeGenericMethod(new[] { i.ServiceType }));
                    @delegate.Invoke(i, startup);
                }
                else
                {
                    if (i.ImplementationType == null || i.ImplementationType.IsInterface)
                    {
                    }
                    else
                    {
                        startup.ServiceRegister.RegisterType(i.ImplementationType, i.ServiceType, string.Empty, Convert(i.Lifetime));
                    }
                };
            }

            return(startup);
        }
示例#17
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddMemoryCache();

            services.AddSwaggerDocumentation();

            services.AddProblemDetails(x =>
            {
                x.Map <InvalidCommandException>(ex => new InvalidCommandProblemDetails(ex));
                x.Map <BusinessRuleValidationException>(ex => new BusinessRuleValidationExceptionProblemDetails(ex));
            });


            services.AddHttpContextAccessor();
            var serviceProvider = services.BuildServiceProvider();

            IExecutionContextAccessor executionContextAccessor = new ExecutionContextAccessor(serviceProvider.GetService <IHttpContextAccessor>());

            var children             = this._configuration.GetSection("Caching").GetChildren();
            var cachingConfiguration = children.ToDictionary(child => child.Key, child => TimeSpan.Parse(child.Value));
            var emailsSettings       = _configuration.GetSection("EmailsSettings").Get <EmailsSettings>();
            var memoryCache          = serviceProvider.GetService <IMemoryCache>();

            return(ApplicationStartup.Initialize(
                       services,
                       this._configuration[OrdersConnectionString],
                       new MemoryCacheStore(memoryCache, cachingConfiguration),
                       null,
                       emailsSettings,
                       _logger,
                       executionContextAccessor));
        }
示例#18
0
 public void ConfigureContainer(ContainerBuilder builder)
 {
     // Register your own things directly with Autofac, like:
     ApplicationStartup.Initialize(
         builder,
         this._configuration[OrdersConnectionString],
         this._configuration[ConnectionKrakenString]);
 }
示例#19
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            ApplicationStartup.Configure(app, env);

            var apiControllers = new[] { TodoStartup.GetAssembly() };

            ApplicationStartup.ConfigureModules(app, env, apiControllers);
        }
示例#20
0
 /// <summary>
 /// 启用Api路由健康报告信息
 /// </summary>
 /// <param name="startup">启动信息</param>
 /// <param name="a10HealthReport">A10报告</param>
 /// <param name="secondInterval">每个A10文件的检查间隔,以秒为单位,最小时间为10秒</param>
 /// <param name="initApiRouteProviderMethod">初始化路由提供者</param>
 /// <param name="loggerBuilder">日志</param>
 /// <returns></returns>
 public static ApplicationStartup UseApiUriRouteDispatch(this ApplicationStartup startup, int secondInterval, IA10HealthReport a10HealthReport, Func <IA10HealthReport, IEnumerable <IApiRouteProvider> > initApiRouteProviderMethod, Func <ILoggerBuilder> loggerBuilder)
 {
     startup.RegisterStartService(new StartupService(secondInterval < 10 ? 10 : secondInterval, initApiRouteProviderMethod, a10HealthReport)
     {
         LoggerBuilder = loggerBuilder
     });
     return(startup);
 }
示例#21
0
 private static void Main(string[] args)
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     ApplicationStartup.Initialize();
     WindowsFormsSettings.SetDPIAware();
     Application.Run(IoC.Resolve <ITestPresenter>().View as Form);
 }
示例#22
0
 /// <summary>
 /// 服务启动
 /// </summary>
 protected virtual void Application_Start()
 {
     this.Startup       = this.startup();
     this.StartupEvents = new StartupEventArgs(this.Startup);
     if (this.OnStarting != null)
     {
         OnStarting(this, this.StartupEvents);
     }
 }
示例#23
0
        /// <summary>
        /// 使用注入
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="services"></param>
        /// <returns></returns>
        public static ApplicationStartup UseHostingDependency(this ApplicationStartup startup, IServiceCollection services)
        {
            if (startup.Items.ContainsKey("UseConsoleHostingDependency"))
            {
                return(startup);
            }

            startup.Items["UseConsoleHostingDependency"] = "t";
            return(new ApiServiceCollection(services).Populate(startup));
        }
示例#24
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var mvc = ApplicationStartup.ConfigureServices(services);

            TodoStartup.ConfigureServices(services, mvc);

            var allMappingProfiles = new[] { Assembly.GetAssembly(typeof(TodoMappingProfile)) };

            ApplicationStartup.ConfigureModuleServices(services, allMappingProfiles);
        }
示例#25
0
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ApplicationStartup.Initialize();

            var applicationConfugration = new ApplicationConfiguration();

            Application.Run(IoC.Resolve <ITestPresenter>().View as Form);
        }
示例#26
0
        /// <summary>
        /// 启动memcached支持
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="servers">服务列表</param>
        /// <param name="key">IoC容器中的key</param>
        /// <param name="compressProtocol"></param>
        /// <returns></returns>
        public static ApplicationStartup UseMemcached(this ApplicationStartup startup, MemcachedClient memcachedClient, string key = null)
        {
            if (startup.Items.ContainsKey("UseMemcached" + key))
            {
                return(startup);
            }

            startup.ServiceRegister.RegisterInstance(memcachedClient, typeof(ICaching), key);
            startup.Items["UseMemcached" + key] = "t";
            return(startup);
        }
示例#27
0
        /// <summary>
        /// 启动wcf Ioc注入支持
        /// </summary>
        /// <param name="startup"></param>
        /// <returns></returns>
        public static ApplicationStartup UseWebEnvironment(this ApplicationStartup startup)
        {
            if (startup.Items.ContainsKey("UseWebEnvironment"))
            {
                return(startup);
            }

            startup.ServiceRegister.RegisterType <Never.Web.Fakes.HttpContextWrapper, System.Web.HttpContextBase>(string.Empty, Never.IoC.ComponentLifeStyle.Scoped);
            startup.Items["UseWebEnvironment"] = "t";
            return(startup);
        }
示例#28
0
        /// <summary>
        /// 启动mvc的ModelState验证
        /// </summary>
        /// <param name="startup"></param>
        /// <returns></returns>
        public static ApplicationStartup UseMvcModelStateValidation(this ApplicationStartup startup)
        {
            if (startup.Items.ContainsKey("UseMvcModelStateValidation"))
            {
                return(startup);
            }

            startup.RegisterStartService(new StartupService());
            startup.Items["UseMvcModelStateValidation"] = "t";
            return(startup);
        }
示例#29
0
        /// <summary>
        /// 使用appconfig
        /// </summary>
        /// <param name="startup"></param>
        /// <returns></returns>
        public static ApplicationStartup UseAppConfig(this ApplicationStartup startup, Microsoft.Extensions.Configuration.IConfiguration configuration)
        {
            if (startup.Items.ContainsKey("UseAppConfig"))
            {
                return(startup);
            }

            startup.ServiceRegister.RegisterInstance(new AppConfigReader(configuration), typeof(IConfigReader));
            startup.Items["UseAppConfig"] = "t";
            return(startup);
        }
示例#30
0
        /// <summary>
        /// 使用appconfig
        /// </summary>
        /// <param name="startup"></param>
        /// <param name="configReader"></param>
        /// <returns></returns>
        public static ApplicationStartup UseAppConfig(this ApplicationStartup startup, IConfigReader configReader)
        {
            if (startup.Items.ContainsKey("UseAppConfig"))
            {
                return(startup);
            }

            startup.ServiceRegister.RegisterInstance(configReader, typeof(IConfigReader));
            startup.Items["UseAppConfig"] = "t";
            return(startup);
        }