public List <IModule> RegisterModules(IMvcBuilder mvcBuilder, IServiceCollection services, IServiceProvider serviceProvider) { foreach (var module in modules) { try { var moduleInitializerType = module.Assembly.GetTypes().Where(x => typeof(IModule).IsAssignableFrom(x)).FirstOrDefault(); if (moduleInitializerType != null && moduleInitializerType != typeof(IModule)) { var moduleInstance = (IModule)Activator.CreateInstance(moduleInitializerType); LoadModuleInfo(moduleInstance, module); NccModule.NccModuleStatus moduleStatus = VerifyModuleInstallation(moduleInstance, serviceProvider); moduleInstance.ModuleStatus = (int)moduleStatus; if (moduleStatus == NccModule.NccModuleStatus.Active) { // Register controller from modules mvcBuilder.AddApplicationPart(module.Assembly); } else if (moduleStatus == NccModule.NccModuleStatus.Duplicate) { //TODO: Raise duplicate error message continue; } // Register dependency in modules moduleInstance.Init(services); RegisterWidgets(moduleInstance, services, serviceProvider); instantiatedModuleList.Add(moduleInstance); } } catch (Exception ex) { //RAISE GLOBAL ERROR } } services.Configure <RazorViewEngineOptions>(options => { options.ViewLocationExpanders.Add(new ModuleViewLocationExpendar()); }); mvcBuilder.AddRazorOptions(o => { foreach (var module in modules) { o.AdditionalCompilationReferences.Add(MetadataReference.CreateFromFile(module.Assembly.Location)); } }); return(instantiatedModuleList); }
private NccModule UpdateModuleStatus(string id, NccModule.NccModuleStatus status) { var nId = long.Parse(id); var module = _moduleService.Get(nId); if (module != null) { module.ModuleStatus = status; _moduleService.Update(module); } return(module); }
private NccModule UpdateModuleStatus(string id, NccModule.NccModuleStatus status) { var nId = long.Parse(id); var module = _moduleService.Get(nId); if (module != null) { module.ModuleStatus = status; _moduleService.Update(module); var loadedModule = GlobalContext.Modules.Where(x => x.ModuleId == module.ModuleId).FirstOrDefault(); if (loadedModule != null) { loadedModule.ModuleStatus = (int)status; } } return(module); }
public List <NccModule> LoadByModuleStatus(NccModule.NccModuleStatus active) { return(_entityRepository.LoadByModuleStatus(active)); }
internal List <NccModule> LoadByModuleStatus(NccModule.NccModuleStatus active) { return(Query().Where(x => x.ModuleStatus == active).ToList()); }
public List <IModule> AddModulesAsApplicationPart(IMvcBuilder mvcBuilder, IServiceCollection services, IServiceProvider serviceProvider) { var nccSettingsService = serviceProvider.GetService <INccSettingsService>(); foreach (var module in modules) { try { var moduleInitializerType = module.Assembly.GetTypes().Where(x => typeof(IModule).IsAssignableFrom(x)).FirstOrDefault(); if (moduleInitializerType != null && moduleInitializerType != typeof(IModule)) { var moduleInstance = (IModule)Activator.CreateInstance(moduleInitializerType); LoadModuleInfo(moduleInstance, module); NccModule.NccModuleStatus moduleStatus = VerifyModuleInstallation(moduleInstance, serviceProvider); moduleInstance.ModuleStatus = (int)moduleStatus; if (moduleStatus == NccModule.NccModuleStatus.Active) { // Register controller from modules mvcBuilder.AddApplicationPart(module.Assembly); // Register dependency in modules LoadModuleDependencies(module.Path, module.Folder); moduleInstance.Init(services, nccSettingsService); } else if (moduleStatus == NccModule.NccModuleStatus.Duplicate) { //TODO: Raise duplicate error message GlobalMessageRegistry.RegisterMessage( new GlobalMessage() { For = GlobalMessage.MessageFor.Admin, Registrater = "AddModulesAsApplicationPart", Text = $"Duplicate module {module.ModuleTitle}", Type = GlobalMessage.MessageType.Error }, new TimeSpan(0, 0, 30) ); continue; } instantiatedModuleList.Add(moduleInstance); GlobalContext.Modules.Add(moduleInstance); } } catch (ReflectionTypeLoadException rtle) { } catch (Exception ex) { GlobalMessageRegistry.RegisterMessage( new GlobalMessage() { For = GlobalMessage.MessageFor.Admin, Registrater = "AddModulesAsApplicationPart", Text = ex.Message, Type = GlobalMessage.MessageType.Error }, new TimeSpan(0, 0, 60) ); } } GlobalContext.SetModuleDependencies(_moduleDependencies); services.Configure <RazorViewEngineOptions>(options => { options.ViewLocationExpanders.Add(new ModuleViewLocationExpendar()); }); mvcBuilder.AddRazorOptions(o => { foreach (var module in instantiatedModuleList.Where(x => x.ModuleStatus == (int)NccModule.NccModuleStatus.Active).ToList()) { o.AdditionalCompilationReferences.Add(MetadataReference.CreateFromFile(module.Assembly.Location)); } }); return(instantiatedModuleList); }