Exemplo n.º 1
0
        public object SystemInfo()
        {
            IServiceProvider provider = HttpContext.RequestServices;

            dynamic           info        = new ExpandoObject();
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            info.Packs = packManager.SourcePacks.OrderBy(m => m.Level).ThenBy(m => m.Order).ThenBy(m => m.GetType().FullName).Select(m => new
            {
                m.GetType().Name,
                Class = m.GetType().FullName,
                Level = m.Level.ToString(),
                m.Order,
                m.IsEnabled
            }).ToList();

            string version = Assembly.GetExecutingAssembly().GetProductVersion();

            info.Lines = new List <string>()
            {
                "WebApi 数据服务已启动",
                $"当前版本:{version}"
            };

            return(info);
        }
Exemplo n.º 2
0
        public IActionResult SystemInfo()
        {
            IServiceProvider provider = HttpContext.RequestServices;

            dynamic           info        = new ExpandoObject();
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            info.Packs = packManager.SourcePacks.OrderBy(m => m.Level).ThenBy(m => m.Order).ThenBy(m => m.GetType().FullName).Select(m => new
            {
                m.GetType().Name,
                Class = m.GetType().FullName,
                Level = m.Level.ToString(),
                m.Order,
                m.IsEnabled
            }).ToList();

            string version = Assembly.GetExecutingAssembly().GetProductVersion();

            MvcOptions mvcOps = provider.GetService <IOptions <MvcOptions> >().Value;

            info.Lines = new List <string>()
            {
                "WebApi 数据服务已启动",
                $"版本号:{version}",
                $"数据连接:{provider.GetOSharpOptions().GetDbContextOptions(typeof(DefaultDbContext)).ConnectionString}",
                $"MvcFilters:\r\n{mvcOps.Filters.ExpandAndToString(m => $"{m.ToString()}-{m.GetHashCode()}", "\r\n")}"
            };

            return(Json(info));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 将OSharp服务,各个<see cref="OsharpPack"/>模块的服务添加到服务容器中
        /// </summary>
        public static IServiceCollection AddOSharp(this IServiceCollection services, Action <IOSharpBuilder> builderAction = null, AppServiceScanOptions scanOptions = null)
        {
            Check.NotNull(services, nameof(services));

            IOSharpBuilder builder = new OSharpBuilder();

            if (builderAction != null)
            {
                builderAction(builder);
            }
            OSharpPackManager manager = new OSharpPackManager(builder, new AppDomainAllAssemblyFinder());

            manager.LoadPacks(services);
            services.AddSingleton(provider => manager);
            if (scanOptions == null)
            {
                scanOptions = new AppServiceScanOptions();
            }
            services = new AppServiceAdder(scanOptions).AddServices(services);
            if (builder.OptionsAction != null)
            {
                services.Configure(builder.OptionsAction);
            }
            return(services);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 应用OSharp框架,初始化各个Pack
        /// </summary>
        public static IServiceProvider UseOSharp(this IServiceProvider provider)
        {
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            packManager.UsePacks(provider);
            return(provider);
        }
Exemplo n.º 5
0
        /// <summary>
        /// OSharp框架初始化
        /// </summary>
        public static IApplicationBuilder UseOSharp(this IApplicationBuilder app)
        {
            IServiceProvider  provider    = app.ApplicationServices;
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            packManager.UsePacks(app);

            return(app);
        }
Exemplo n.º 6
0
        public static IServiceProvider UnitTestInit(this IServiceCollection services)
        {
            services.AddOSharp(build => build.AddCorePack());
            IServiceProvider  provider    = services.BuildServiceProvider();
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            packManager.UsePacks(provider);
            return(provider);
        }
        /// <summary>
        /// OSharp框架初始化
        /// </summary>
        public static IApplicationBuilder UseOSharp(this IApplicationBuilder app)
        {
            IServiceProvider serviceProvider = app.ApplicationServices;

            OSharpPackManager moduleManager = serviceProvider.GetService <OSharpPackManager>();

            moduleManager.UseModules(serviceProvider);

            return(app);
        }
Exemplo n.º 8
0
        public void TrySetApplicationServiceProvider_Test()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddScoped <ServiceLocatorTests, ServiceLocatorTests>();
            services.AddLogging();
            services.AddOSharp(b => b.AddCorePack());

            IServiceProvider  provider    = services.BuildServiceProvider();
            OSharpPackManager packManager = provider.GetService <OSharpPackManager>();

            packManager.UsePacks(provider);

            ServiceLocator.Instance.GetService <ServiceLocatorTests>().ShouldNotBeNull();
        }
Exemplo n.º 9
0
        /// <summary>
        /// 将OSharp服务,各个<see cref="OsharpPack"/>模块的服务添加到服务容器中
        /// </summary>
        public static IServiceCollection AddOSharp(this IServiceCollection services, Action <IOSharpBuilder> builderAction = null)
        {
            Check.NotNull(services, nameof(services));

            IOSharpBuilder builder = new OSharpBuilder();

            if (builderAction != null)
            {
                builderAction(builder);
            }
            OSharpPackManager manager = new OSharpPackManager(builder, new AppDomainAllAssemblyFinder());

            manager.LoadPacks(services);
            services.AddSingleton(provider => manager);
            return(services);
        }