Esempio n. 1
0
        /**
         * Returns a list of apps that need upgrade
         *
         * @param string version Nextcloud version as array of version components
         * @return array list of app info from apps that need an upgrade
         *
         * @internal
         */
        public IList getAppsNeedingUpgrade(string version)
        {
            var appsToUpgrade = new List <AppInfo>();
            var apps          = this.getInstalledApps();

            foreach (var appId in apps)
            {
                var appInfo      = this.getAppInfo(appId);
                var appDbVersion = this.appConfig.getValue(appId, "installed_version");
                if (appDbVersion.IsNotEmpty() &&
                    appInfo.Version.IsNotEmpty() &&
                    VersionUtility.version_compare(appInfo.Version, appDbVersion, ">") &&
                    OC_App.isAppCompatible(version, appInfo)
                    )
                {
                    appsToUpgrade.Add(appInfo);
                }
            }

            return(appsToUpgrade);
        }
Esempio n. 2
0
        /**
         * Returns a list of apps incompatible with the given version
         *
         * @param string version Nextcloud version as array of version components
         *
         * @return array list of app info from incompatible apps
         *
         * @internal
         */
        public IList <AppInfo> getIncompatibleApps(string version)
        {
            var apps             = this.getInstalledApps();
            var incompatibleApps = new List <AppInfo>();

            foreach (var appId in apps)
            {
                var info = this.getAppInfo(appId);
                if (info == null)
                {
                    info = new AppInfo()
                    {
                        Id = appId
                    };
                    incompatibleApps.Add(info);
                }
                else if (!OC_App.isAppCompatible(version, info))
                {
                    incompatibleApps.Add(info);
                }
            }

            return(incompatibleApps);
        }