コード例 #1
0
ファイル: CafJobModule.cs プロジェクト: JohnnyQianP/CafFrame
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            context.ServiceProvider.GetService <SchedulerCenter>()?.Init();//初始化Job
            var app = context.ServiceProvider.GetRequiredService <ObjectWrapper <IApplicationBuilder> >().Value;

            app.Use(async(context, next) =>
            {
                if (context.Request.Path.Value.ToLower().StartsWith("/jobui"))
                {
                    context.Request.Path = "/index.html";
                    await next();
                }
                else
                {
                    await next();
                }
            });

            var manifestEmbeddedProvider =
                new ManifestEmbeddedFileProvider(typeof(CafJobModule).Assembly, "UI");

            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = manifestEmbeddedProvider
            });
        }
コード例 #2
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var options = new MagicOnionOptions();

            options.IsReturnExceptionStackTraceInErrorDetail = true;
            options.ServiceLocator             = new MicrosoftExtensionsServiceLocator(context.ServiceProvider, options);//new ServiceLocatorBridge(factory);
            options.MagicOnionServiceActivator = new MicrosoftExtensionsMagicOnionServiceActivator();
            MagicOnionServiceDefinition serviceDefine = null;
            var config    = context.ServiceProvider.GetRequiredService <IGrpcServerConfiguration>();
            var generator = context.ServiceProvider.GetRequiredService <IGrpcServiceGenerator>();

            generator.GeneraterProxyService();//创建MagicOnion grpc 代理程序集
            config.GrpcAssemblies = config.GrpcAssemblies.Append(generator.DynamicAssembly).ToList();
            config.GrpcAssemblies = config.GrpcAssemblies.Append(generator.DynamicInterfaceAssembly).ToList();
            if (config.GrpcAssemblies != null)
            {
                serviceDefine = MagicOnionEngine.BuildServerServiceDefinition(config.GrpcAssemblies.ToArray(), options);
            }
            var packageMagicOnionServerService = new PackageMagicOnionServerService(serviceDefine, new[]
            {
                new ServerPort(config.GrpcBindAddress, config.GrpcBindPort, ServerCredentials.Insecure)
            }, null);

            packageMagicOnionServerService.StartAsync(CancellationToken.None);
        }
コード例 #3
0
        public override void OnApplicationShutdown(CafApplicationContext context)
        {
            var grpcConfig = context.ServiceProvider.GetRequiredService <IGrpcClientConfiguration>();

            foreach (var serverNodes in grpcConfig.GrpcDirectConnectionConfiguration.GrpcServerNodes)
            {
                serverNodes.Value?.InternalChannel?.ShutdownAsync();
            }
        }
コード例 #4
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var app = context.GetApplicationBuilder();

            app.Use(async(context, next) => {
                context.Request.EnableBuffering();
                await next();
            });
            app.UseCors(_defaultCorsPolicyName);
            app.UseStaticHttpContext();
        }
コード例 #5
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var app              = context.ServiceProvider.GetRequiredService <ObjectWrapper <IApplicationBuilder> >().Value;;
            var _cacheOpetions   = context.ServiceProvider.GetService <IOptions <TakedaCacheOptions> >();
            var wechatAccoutnOpt = context.ServiceProvider.GetService <IOptions <WechatAccountOptions> >();

            if (_cacheOpetions.Value.UseRedis)
            {
                app.UseSenparcWeiXinWithRedis(_cacheOpetions, wechatAccoutnOpt);
            }
            else
            {
                app.UseSenparcWeiXin(_cacheOpetions, wechatAccoutnOpt);
            }
        }
コード例 #6
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var app = context.GetApplicationBuilder();
            var env = context.GetEnvironment();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            //app.UseHttpsRedirection();
            app.UseRouting();
            app.UseCafExceptionHandler();
            app.UseStaticFiles();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
コード例 #7
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            using (var scope = context.ServiceProvider.CreateScope())
            {
                var options = scope.ServiceProvider.GetRequiredService <IOptions <CafMapperOption> >().Value;

                var mapperConfiguration = new MapperConfiguration(mapper =>
                {
                    foreach (var config in options.Configurators)
                    {
                        config(mapper);
                    }
                });
                var mapper        = new Mapper(mapperConfiguration);
                var mapperWrapper = context.ServiceProvider.GetRequiredService <IObjectWrapper <IMapper> >();
                mapperWrapper.Value = mapper;
            }
        }
コード例 #8
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var app = context.GetApplicationBuilder();
            var env = context.GetEnvironment();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            #region  Localization
            var supportedCultures = new[] { "zh-CN", "en-US" };
            app.UseRequestLocalization(cultureOptions =>
            {
                cultureOptions.AddSupportedCultures(supportedCultures)
                .AddSupportedUICultures(supportedCultures)
                .SetDefaultCulture(supportedCultures[0]);
            });
            #endregion

            app.UseRouting();
            app.UseCafExceptionHandler();
            app.UseStaticFiles();

            #region swagger
            app.UseSwagger();
            app.UseSwaggerUI(option =>
            {
                option.SwaggerEndpoint("/swagger/v1/swagger.json", "caf Docs");
                option.DocumentTitle = "caf API";
            });
            #endregion
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
コード例 #9
0
 public override void OnApplicationInitialization(CafApplicationContext context)
 {
 }
コード例 #10
0
        public override void OnApplicationInitialization(CafApplicationContext context)
        {
            var mapping = context.ServiceProvider.GetRequiredService <IMongoContextEntityMapping>();

            mapping.LoadMaping(typeof(MongodbTestMoudle));
        }
コード例 #11
0
 public static IApplicationBuilder GetApplicationBuilder(this CafApplicationContext context)
 {
     return(context.ServiceProvider.GetRequiredService <ObjectWrapper <IApplicationBuilder> >().Value);
 }
コード例 #12
0
 public static IWebHostEnvironment GetEnvironment(this CafApplicationContext context)
 {
     return(context.ServiceProvider.GetRequiredService <IWebHostEnvironment>());
 }