public static ModuleBox GetModules() { var modules = GetModulesFromRemoteServer() ?? new ModuleBox(); //if (modules.Message.IsNotEmpty()) //{ // return modules; //} var isExistsOnlineModules = modules.Items.Count > 0; foreach (var type in AttachedModules.GetModules(AttachedModules.EModuleType.All)) { var moduleInst = (IModule)Activator.CreateInstance(type, null); Module curModule; if (isExistsOnlineModules && (curModule = modules.Items.FirstOrDefault(item => item.StringId.ToLower() == moduleInst.ModuleStringId.ToLower())) != null) { curModule.IsInstall = moduleInst.CheckAlive() && ModulesRepository.IsInstallModule(moduleInst.ModuleStringId); curModule.IsLocalVersion = true; } else { modules.Items.Add(new Module { Name = moduleInst.ModuleName, StringId = moduleInst.ModuleStringId, Version = Resources.Resource.ModulesService_ModuleInDebug, IsInstall = moduleInst.CheckAlive() && ModulesRepository.IsInstallModule(moduleInst.ModuleStringId), Price = 0, IsLocalVersion = true }); } } var existModules = ModulesRepository.GetModulesFromDb(); foreach (var module in modules.Items) { Module currentModule; if (existModules.Count > 0 && (currentModule = existModules.FirstOrDefault(item => item.StringId == module.StringId)) != null) { module.CurrentVersion = currentModule.Version; } } return(modules); }
public static void LoadModules() { _activeModules = ModulesRepository.GetModulesFromDb().Where(m => m.IsInstall && m.Active).ToList(); _allModules = Assembly.GetExecutingAssembly() .GetTypes() .Where( item => item.Namespace == "AdvantShop.Modules" && item.GetInterface("AdvantShop.Modules.Interfaces.IModule") == typeof(IModule)) .ToList(); _isLoaded = true; }