Esempio n. 1
0
        /// <summary>
        /// Зарегистрировать статический модуль.
        /// </summary>
        /// <typeparam name="T">Тип модуля.</typeparam>
        /// <typeparam name="TIntf">Тип интерфейса, который реализует модуль.</typeparam>
        /// <param name="collection">Коллекция.</param>
        /// <param name="filter">Фильтр модуля.</param>
        public static void RegisterModule <T, TIntf>(this IModuleCollection collection, IStaticModuleQueryFilter filter = null)
            where T : IModule, TIntf, new()
        {
            var module = new T();

            collection.RegisterProvider(typeof(TIntf), new StaticModuleProvider <T, TIntf>(module, filter ?? module as IStaticModuleQueryFilter));
        }
        /// <summary>
        /// 添加Quartz服务
        /// </summary>
        /// <param name="services"></param>
        /// <param name="modules">模块集合</param>
        /// <param name="props">属性</param>
        /// <returns></returns>
        public static IServiceCollection AddQuartz(this IServiceCollection services, IModuleCollection modules, NameValueCollection props)
        {
            #region ==反射注入所有模块的任务服务==

            if (modules != null && modules.Any())
            {
                foreach (var module in modules)
                {
                    var quartzAssembly = module.AssemblyDescriptor.Quartz;
                    if (quartzAssembly != null)
                    {
                        var jobTypes = quartzAssembly.GetTypes().Where(m => typeof(IJobTask).IsAssignableFrom(m));
                        foreach (var jobType in jobTypes)
                        {
                            services.AddTransient(jobType);
                        }
                    }
                }
            }

            #endregion

            //注入日志
            services.TryAddTransient <IJobLogger, JobLogger>();

            //注入Quartz服务实例
            services.AddSingleton <IQuartzServer>(sp => new QuartzServer(props, sp));

            //注入应用关闭事件
            services.AddSingleton <IAppShutdownHandler, QuartzAppShutdownHandler>();

            return(services);
        }
Esempio n. 3
0
 public AuditingHandler(MvcHelper mvcHelper, ILoginInfo loginInfo, IAuditInfoService auditInfoService, IModuleCollection moduleCollection)
 {
     _mvcHelper        = mvcHelper;
     _loginInfo        = loginInfo;
     _auditInfoService = auditInfoService;
     _moduleCollection = moduleCollection;
 }
Esempio n. 4
0
        public ModuleInfoService(IModuleInfoRepository repository, IUnitOfWork <AdminDbContext> uow, IModuleCollection moduleCollection)
        {
            _repository = repository;

            _uow = uow;
            _moduleCollection = moduleCollection;
        }
Esempio n. 5
0
 public DebugController(ApplicationPartManager partManager, ISmtpManager smtp, IModuleCollection mgr, IAdminManager admin)
 {
     _partManager = partManager;
     _modules     = mgr;
     _admin       = admin;
     _smtpManager = smtp;
 }
Esempio n. 6
0
 public ModuleInfoService(IModuleInfoRepository repository, IPermissionRepository permissionRepository, IMenuRepository menuRepository, IModuleCollection moduleCollection)
 {
     _repository           = repository;
     _permissionRepository = permissionRepository;
     _menuRepository       = menuRepository;
     _moduleCollection     = moduleCollection;
 }
        protected override IUnitsModel GetModel()
        {
            IModuleCollection collection = ProfilingViewModel.Application.ServiceContainer.Resolve <IModuleCollection>();
            ModulesModel      model      = new ModulesModel(collection);

            return(model);
        }
 public virtual void VisitModuleCollection(IModuleCollection value)
 {
     for (int i = 0; i < value.Count; i++)
     {
         VisitModule(value[i]);
     }
 }
Esempio n. 9
0
        protected override void Initialize()
        {
            base.Initialize();
            IModuleCollection unitCollection = Session.Daemon.Container.Resolve <IModuleCollection>();

            Model = new UnitCollectionModel <ModuleInfo>(unitCollection);
        }
Esempio n. 10
0
 public ConfigContainer(ICacheHandler cacheHandler, IConfigStorage storage, IModuleCollection moduleCollection, ILogger <ConfigContainer> logger)
 {
     _cacheHandler     = cacheHandler;
     _storage          = storage;
     _moduleCollection = moduleCollection;
     _logger           = logger;
 }
Esempio n. 11
0
 public ModuleInfoService(IModuleInfoRepository repository, IPermissionRepository permissionRepository, IMenuRepository menuRepository, IModuleCollection moduleCollection, AdminDbContext dbContext)
 {
     _repository           = repository;
     _permissionRepository = permissionRepository;
     _menuRepository       = menuRepository;
     _moduleCollection     = moduleCollection;
     _dbContext            = dbContext;
 }
Esempio n. 12
0
 public ModuleInfoService(IModuleInfoRepository repository, IPermissionRepository permissionRepository, IMenuRepository menuRepository, IUnitOfWork <AdminDbContext> uow, IModuleCollection moduleCollection)
 {
     _repository           = repository;
     _permissionRepository = permissionRepository;
     _menuRepository       = menuRepository;
     _uow = uow;
     _moduleCollection = moduleCollection;
 }
Esempio n. 13
0
 public void Configure(IServiceCollection services, IModuleCollection modules, IHostEnvironment env)
 {
     if (modules.Any(m => m.Code.Equals("Admin")))
     {
         //密码处理服务
         services.AddSingleton <IPasswordHandler, Md5PasswordHandler>();
     }
 }
Esempio n. 14
0
 public ModuleOptionsContainer(ILogger <ModuleOptionsContainer> logger, IModuleCollection moduleCollection, IModuleOptionsStorageProvider storageProvider, IServiceProvider serviceProvider, SystemConfigModel systemConfig)
 {
     _logger           = logger;
     _moduleCollection = moduleCollection;
     _storageProvider  = storageProvider;
     _serviceProvider  = serviceProvider;
     _systemConfig     = systemConfig;
 }
 public void SetDependencies(IModuleCollection modules)
 {
     _modules = modules;
     foreach (ClassInfo unit in this)
     {
         unit.SetDependencies(_modules);
     }
 }
Esempio n. 16
0
 public ModuleService(IModuleRepository repository, IModuleCollection moduleCollection, AdminDbContext dbContext, ILogger <ModuleService> logger, IAuditInfoRepository auditInfoRepository)
 {
     _repository          = repository;
     _moduleCollection    = moduleCollection;
     _dbContext           = dbContext;
     _logger              = logger;
     _auditInfoRepository = auditInfoRepository;
 }
Esempio n. 17
0
 public FileController(FileUploadHelper fileUploadHelper, IConfigProvider configProvider, IFileService service, IModuleCollection moduleCollection, ILoginInfo loginInfo)
 {
     _fileUploadHelper = fileUploadHelper;
     _configProvider   = configProvider;
     _service          = service;
     _moduleCollection = moduleCollection;
     _loginInfo        = loginInfo;
 }
Esempio n. 18
0
 public ModulesModel(IModuleCollection units)
 {
     Units   = units;
     Columns = new List <GridViewDynamicColumn>
     {
         new GridViewDynamicColumn("Name", "Name", FilterByName),
         new GridViewDynamicColumn("Assembly", "Assembly.Name", FilterByAssembly)
     };
 }
Esempio n. 19
0
 public AuditingHandler(MvcHelper mvcHelper, ILoginInfo loginInfo, IAuditInfoService auditInfoService, IModuleCollection moduleCollection, ILogger <AuditingHandler> logger, IConfigProvider configProvider)
 {
     _mvcHelper        = mvcHelper;
     _loginInfo        = loginInfo;
     _auditInfoService = auditInfoService;
     _moduleCollection = moduleCollection;
     _logger           = logger;
     _configProvider   = configProvider;
 }
 public void ConfigureServices(IServiceCollection services, IModuleCollection modules, IHostEnvironment env)
 {
     //审计日志服务
     services.AddSingleton <IAuditingHandler, AuditingHandler>();
     //权限验证服务
     services.AddScoped <IPermissionValidateHandler, PermissionValidateHandler>();
     //单账户登录处理服务
     services.AddScoped <ISingleAccountLoginHandler, SingleAccountLoginHandler>();
 }
Esempio n. 21
0
 /// <summary>
 /// Зарегистрировать статический модуль.
 /// </summary>
 /// <typeparam name="T">Тип модуля.</typeparam>
 /// <typeparam name="TIntf">Тип интерфейса, который реализует модуль.</typeparam>
 /// <param name="collection">Коллекция.</param>
 /// <param name="module">Модуль.</param>
 /// <param name="filter">Фильтр модуля.</param>
 public static void RegisterModule <T, TIntf>(this IModuleCollection collection, T module, IStaticModuleQueryFilter filter = null)
     where T : IModule, TIntf
 {
     if (module == null)
     {
         throw new ArgumentNullException(nameof(module));
     }
     collection.RegisterProvider(typeof(TIntf), new StaticModuleProvider <T, TIntf>(module, filter ?? module as IStaticModuleQueryFilter));
 }
Esempio n. 22
0
 public ModuleService(IModuleRepository repository, IModuleCollection moduleCollection, AdminDbContext dbContext, ILogger <ModuleService> logger, IAuditInfoRepository auditInfoRepository, ICacheHandler cacheHandler, IPermissionRepository permissionRepository)
 {
     _repository           = repository;
     _moduleCollection     = moduleCollection;
     _dbContext            = dbContext;
     _logger               = logger;
     _auditInfoRepository  = auditInfoRepository;
     _cacheHandler         = cacheHandler;
     _permissionRepository = permissionRepository;
 }
        public PermissionCollection(MvcHelper mvcHelper, IConfigProvider configProvider, IModuleCollection moduleCollection)
        {
            _mvcHelper        = mvcHelper;
            _configProvider   = configProvider;
            _moduleCollection = moduleCollection;

            LoadPermissions();

            LoadTree();
        }
 public ModuleService(IModuleRepository repository, IModuleCollection moduleCollection, AdminDbContext dbContext, ILogger <ModuleService> logger, IModuleOptionsEngine moduleOptionsContainer, IAuditInfoRepository auditInfoRepository, AdminOptions options)
 {
     _repository             = repository;
     _moduleCollection       = moduleCollection;
     _dbContext              = dbContext;
     _logger                 = logger;
     _moduleOptionsContainer = moduleOptionsContainer;
     _auditInfoRepository    = auditInfoRepository;
     _options                = options;
 }
Esempio n. 25
0
        public void Configure(IServiceCollection services, IModuleCollection modules, IHostEnvironment env, IConfiguration cfg)
        {
            foreach (var module in modules)
            {
                //加载IDictItemListener的实现
                LoadDictItemListeners(module.AssemblyDescriptor.Application, services);
                LoadDictItemListeners(module.AssemblyDescriptor.Infrastructure, services);

                //加载字典名称同步描述符
                LoadDictNameSyncDescriptors(services, module);
            }
        }
        public void Configure(IServiceCollection services, IModuleCollection modules, IHostEnvironment env)
        {
            //密码处理服务
            services.AddSingleton <IPasswordHandler, Md5PasswordHandler>();

            //加载系统配置
            var systemConfig = services.BuildServiceProvider().GetService <SystemConfigResolver>().Load().Result;

            services.AddSingleton(systemConfig);

            //模块配置项存储处理程序
            services.AddSingleton <IModuleOptionsStorageProvider, ModuleOptionsStorageProvider>();
        }
Esempio n. 27
0
        public JobHelper(IModuleCollection moduleCollection)
        {
            JobModuleDescriptors = new List <JobModuleDescriptor>();
            ModuleSelect         = new List <OptionResultModel>();

            foreach (var module in moduleCollection)
            {
                ModuleSelect.Add(new OptionResultModel
                {
                    Label = module.Name,
                    Value = module.Id
                });

                var jobModuleDescriptor = new JobModuleDescriptor
                {
                    Id             = module.Id,
                    Descriptor     = module,
                    JobClassSelect = new List <OptionResultModel>()
                };

                #region ==添加任务类==

                if (module.AssemblyDescriptor.Quartz != null)
                {
                    var jobClassTypes = module.AssemblyDescriptor.Quartz.GetTypes().Where(m => typeof(IJob).IsAssignableFrom(m));
                    foreach (var jobClassType in jobClassTypes)
                    {
                        var jobClassOption = new OptionResultModel
                        {
                            Label = jobClassType.Name,
                            Value = $"{jobClassType.FullName}, {jobClassType.Assembly.GetName().Name}"
                        };

                        var descAttr = (DescriptionAttribute)Attribute.GetCustomAttribute(jobClassType, typeof(DescriptionAttribute));
                        if (descAttr != null && descAttr.Description.NotNull())
                        {
                            jobClassOption.Label = descAttr.Description;
                        }

                        jobModuleDescriptor.JobClassSelect.Add(jobClassOption);
                    }
                }

                #endregion

                JobModuleDescriptors.Add(jobModuleDescriptor);
            }
        }
Esempio n. 28
0
 /// <summary>
 /// Регистрировать модули.
 /// </summary>
 /// <param name="collection">Коллекция.</param>
 public static void RegisterModules(IModuleCollection collection)
 {
     CommonSerializationRegistration.RegisterModules(collection);
     LinkModelsRegistration.RegisterModules(collection);
     PostModelsRegistration.RegisterModules(collection);
 }
Esempio n. 29
0
 public virtual void VisitModuleCollection(IModuleCollection value)
 {
     for (int i = 0; i < value.Count; i++)
     {
         this.VisitModule(value[i]);
     }
 }
Esempio n. 30
0
 public static bool Compare(this IModuleCollection source, IModuleCollection n)
 {
     return Compare<IModule>(source,n);
 }
Esempio n. 31
0
 public static bool Compare(this IModuleCollection source, IModuleCollection n, Func<IModule, IModule, bool> checkitem)
 {
     return Compare<IModule>(source,n,checkitem);
 }
Esempio n. 32
0
 public static bool Compare(this IModuleCollection source, IModuleCollection n, Func<IModule, IModule, Action<string, string>, bool> checkitem, Action<string, string> errAct)
 {
     return Compare<IModule>(source,n,checkitem,errAct);
 }
Esempio n. 33
0
        /// <summary>
        /// 添加模块配置
        /// </summary>
        /// <param name="services"></param>
        /// <param name="modules"></param>
        /// <returns></returns>
        public static IServiceCollection AddModuleOptions(this IServiceCollection services, IModuleCollection modules)
        {
            var collection = new ModuleOptionsCollection();

            if (modules != null && modules.Any())
            {
                foreach (var module in modules)
                {
                    var descriptor = GetDescriptor(services, module);

                    collection.Add(descriptor);
                }
            }

            //注入变更事件
            services.AddChangedEvent(collection);

            //注入配置集合
            services.AddSingleton <IModuleOptionsCollection>(collection);

            //注入引擎
            services.AddSingleton <IModuleOptionsEngine, ModuleOptionsEngine>();

            //从存储加载数据
            services.BuildServiceProvider().GetService <IModuleOptionsEngine>().LoadFromStorage(services);

            return(services);
        }
        public virtual IModuleCollection TransformModuleCollection(IModuleCollection value)
        {
            IModule[] array = new IModule[value.Count];
            for (int i = 0; i < value.Count; i++)
            {
                array[i] = this.TransformModule(value[i]);
            }

            IModuleCollection target = new ModuleCollection();
            target.AddRange(array);
            return target;
        }
        /// <summary>
        /// 添加模块的自定义服务
        /// </summary>
        /// <param name="services"></param>
        /// <param name="modules"></param>
        /// <param name="env"></param>
        /// <param name="cfg"></param>
        /// <returns></returns>
        public static IServiceCollection AddModuleServices(this IServiceCollection services, IModuleCollection modules, IHostEnvironment env, IConfiguration cfg)
        {
            foreach (var module in modules)
            {
                //加载模块初始化器
                ((ModuleDescriptor)module).ServicesConfigurator?.Configure(services, modules, env, cfg);
            }

            return(services);
        }
 private void InsituTransformModuleCollection(IModuleCollection value)
 {
     for (int i = 0; i < value.Count; i++)
     {
         value[i] = this.TransformModule(value[i]);
     }
 }