コード例 #1
0
ファイル: StartupHelper.cs プロジェクト: rhw1111/DCEM
        /// <summary>
        /// 初始化日志
        /// </summary>
        /// <param name="builder"></param>
        public static void InitLogger(ILoggingBuilder builder)
        {
            var mainHandler         = DIContainerContainer.Get <ILoggingBuilderHandler>();
            var loggerConfiguration = ConfigurationContainer.Get <LoggerConfiguration>(ConfigurationNames.Logger);

            mainHandler.Execute(builder, loggerConfiguration).Wait();
        }
コード例 #2
0
        /// <summary>
        /// 初始化Crm服务
        /// </summary>
        /// <returns></returns>
        public static CrmService CreateCrmService()
        {
            var coreConfiguration = ConfigurationContainer.Get <UserCenterAssConfiguration>(ConfigurationNames.Application);

            var crmService = DIContainerContainer.Get <CrmService>();

            if (coreConfiguration.DyCRMSetting != null)
            {
                var dyCRMSetting = coreConfiguration.DyCRMSetting;
                if (crmService != null)
                {
                    crmService.CrmApiMaxRetry   = dyCRMSetting.CrmApiMaxRetry;
                    crmService.CrmApiVersion    = dyCRMSetting.CrmApiVersion;
                    crmService.CrmUrl           = dyCRMSetting.CrmUrl;
                    crmService.TokenServiceType = dyCRMSetting.TokenServiceType;
                    crmService.TokenServiceParameters.Add("Domain", dyCRMSetting.Domain);
                    crmService.TokenServiceParameters.Add("AdfsUrl", dyCRMSetting.AdfsUrl);
                    crmService.TokenServiceParameters.Add("CrmUrl", dyCRMSetting.CrmUrl);
                    crmService.TokenServiceParameters.Add("ClientId", dyCRMSetting.ClientId);
                    crmService.TokenServiceParameters.Add("ClientSecret", dyCRMSetting.ClientSecret);
                    crmService.TokenServiceParameters.Add("UserName", dyCRMSetting.UserName);
                    crmService.TokenServiceParameters.Add("Password", dyCRMSetting.Password);
                    crmService.TokenServiceParameters.Add("RedirectUri", dyCRMSetting.RedirectUri);

                    ContextContainer.SetValue <Guid>(ContextExtensionTypes.MemberInstanceId, dyCRMSetting.MemberInstanceId);
                }
            }

            return(crmService);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: rhw1111/DCEM
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)

        .ConfigureServices((context, services) =>
        {
            //获取核心配置
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>(ConfigurationNames.Application);

            //初始化DI容器
            MainStartupHelper.InitDI(services, coreConfiguration.DISetting);


            //初始化静态设置
            MainStartupHelper.InitStaticInfo();
        })
        .ConfigureLogging((builder) =>
        {
            //初始化日志配置
            MainStartupHelper.InitLogger(builder);
        })
        .ConfigureAppConfiguration((context, builder) =>
        {
            //context.HostingEnvironment.EnvironmentName
        })

        .UseConfiguration(ConfigurationContainer.GetConfiguration(ConfigurationNames.Host))

        .UseStartup <Startup>();
コード例 #4
0
ファイル: xugw.cs プロジェクト: rhw1111/DCEM
        static xugw()
        {
            try
            {
                var currentDir = Directory.GetCurrentDirectory();

                //初始化配置容器
                StartupHelper.InitConfigurationContainer("NUT", currentDir);

                //初始化上下文信息
                StartupHelper.InitContext();

                ServiceCollection serviceCollection = new ServiceCollection();
                serviceCollection.AddLogging();

                var configuration = ConfigurationContainer.Get <CoreConfiguration>(ConfigurationNames.Application);

                //初始化DI容器
                StartupHelper.InitDI(serviceCollection, configuration.DISetting);

                //初始化静态设置信息
                StartupHelper.InitStaticInfo();


                //ILoggerFactory loggerFactory = DIContainerContainer.Get<ILoggerFactory>();

                ////初始化日志
                //StartupHelper.InitLogger();
            }
            catch (Exception ex)
            {
                var b = ex;
            }
        }
コード例 #5
0
        public void ConfigureContainer(ContainerBuilder containerBuilder)
        {
            //containerBuilder.Populate(_services);

            //获取核心配置
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>(ConfigurationNames.Application);


            //初始化DI容器
            StartupHelper.InitDI(_services, containerBuilder, coreConfiguration.DISetting);
        }
コード例 #6
0
        public string CreateReadForContext()
        {
            if (DBAllScope.IsAll())
            {
                return(CreateAllForContext());
            }
            else
            {
                var appConfiguration = ConfigurationContainer.Get <AppConfiguration>(ConfigurationNames.Application);

                return(appConfiguration.Connections["mainread"]);
            }
        }
コード例 #7
0
        public string CreateOauthDBRead()
        {
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>();

            if (DBAllScope.IsAll())
            {
                return(coreConfiguration.Connections["oauthdball"]);
            }
            else
            {
                return(coreConfiguration.Connections["oauthdbread"]);
            }
        }
コード例 #8
0
        public string CreateReadForSystemConfiguration()
        {
            var coreConfiguration = ConfigurationContainer.Get <BaseConfiguration>(ConfigurationNames.Application);

            if (coreConfiguration.Connections != null)
            {
                return(coreConfiguration.Connections[DBConnectionNames.MainDBRead]);
            }
            else
            {
                return("");
            }
        }
コード例 #9
0
        //执行之前处理
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            #region 通过请求token获取当前用户登录信息
            var coreConfiguration = ConfigurationContainer.Get <BaseConfiguration>(ConfigurationNames.Application);
            if (coreConfiguration.DyCRMSetting != null)
            {
                var dyCRMSetting = coreConfiguration.DyCRMSetting;
                _baseUrl = $"{dyCRMSetting.CrmUrl}/api/data/v{dyCRMSetting.CrmApiVersion}";
            }
            IHttpContextAccessor _accessor = new HttpContextAccessor();
            var token = _accessor.HttpContext.Request.Headers["token"].ToString();
            if (!string.IsNullOrEmpty(token))
            {
                var    helper   = DIContainerContainer.Get <AdfsEndpointRepositoryHelper>();
                string userName = "";
                if (token.Contains("ADAUTH:"))
                {
                    userName = token.Split(':')[1];
                    if (userName.Contains("\\"))
                    {
                        userName = userName.Split("\\")[1];
                    }
                }
                else
                {
                    var endpoint = await helper.QueryByName("Main");

                    var claims = await endpoint.ValidateJWT(token, new string[] { _baseUrl });

                    userName = claims.FindFirst(System.Security.Claims.ClaimTypes.Name).Value;
                }

                if (!string.IsNullOrEmpty(userName))
                {
                    #region 缓存用户登录信息
                    var logioninfo = await helper.GetLoginInfo(userName, token);

                    if (logioninfo != null)
                    {
                        ContextContainer.SetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo, logioninfo);
                    }
                    #endregion
                }
            }
            else
            {
                //throw new Exception("接口鉴权失败");
            }
            #endregion
            await next();
        }
コード例 #10
0
        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseIISIntegration()
        .ConfigureServices((context, services) =>
        {
            //初始化配置容器
            StartupHelper.InitConfigurationContainer(context.HostingEnvironment.EnvironmentName, _baseUrl);

            //获取核心配置
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>(ConfigurationNames.Application);

            //初始化DI容器
            MainStartupHelper.InitDI(services, coreConfiguration.DISetting);


            //初始化静态设置
            MainStartupHelper.InitStaticInfo();
            StartupHelper.InitStaticInfo();


            //配置日志工厂
            var loggerFactory = LoggerFactory.Create((builder) =>
            {
                MainStartupHelper.InitLogger(builder);
            });
            DIContainerContainer.Inject <ILoggerFactory>(loggerFactory);
        })
        .ConfigureLogging((builder) =>
        {
            //初始化日志配置
            //MainStartupHelper.InitLogger(builder);
        })
        .ConfigureKestrel(opts =>
        {
        })

        .UseConfiguration(ConfigurationContainer.GetConfiguration(ConfigurationNames.Host))
        .UseStartup <Startup>();
コード例 #11
0
        public string CreateAllForContext()
        {
            var appConfiguration = ConfigurationContainer.Get <AppConfiguration>(ConfigurationNames.Application);

            return(appConfiguration.Connections["mainall"]);
        }
コード例 #12
0
        public string CreateOauthDBALL()
        {
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>();

            return(coreConfiguration.Connections["oauthdball"]);
        }
コード例 #13
0
        public string CreateReadForMain()
        {
            var coreConfiguration = ConfigurationContainer.Get <CoreConfiguration>(ConfigurationNames.Application);

            return(coreConfiguration.Connections[DBConnectionNames.MainDBRead]);
        }