Beispiel #1
0
        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;
        }