예제 #1
0
        // Synchronize remote and local data
        public void synchronizeData()
        {
            Versions.Clear();
            RunnableVersions.Clear();
            VsixVersion = null;

            // If we don't have the remote list, build from the local package list
            var packageList = serverPackages;

            if (packageList.IsEmpty())
            {
                packageList = localPackages;
            }

            // Group packages by Major.Minor revision
            var majorMinorPkg = packageList.GroupBy(p => p.Version.Version.Major, p => p);

            foreach (var major in majorMinorPkg)
            {
                var majorVersion = major.Key;

                var minorPkg = major.GroupBy(p => p.Version.Version.Minor, p => p);

                foreach (var minor in minorPkg)
                {
                    var latestPackage = minor.First();

                    var sdkVersionItem = new SDKVersion()
                    {
                        LatestAvailablePackage = latestPackage,
                        Major = majorVersion,
                        Minor = latestPackage.Version.Version.Minor
                    };

                    // Check if we have one revision of the Major.Minor version already installed locally
                    var localPackage = manager.LocalRepository.FindPackagesById(packageName).OrderByDescending(p => p.Version)
                                       .FirstOrDefault(p => p.Version.Version.Major == sdkVersionItem.Major && p.Version.Version.Minor == sdkVersionItem.Minor);
                    sdkVersionItem.InstalledPackage = localPackage;

                    Versions.Add(sdkVersionItem);
                }
            }

            // List of the startable versions
            RunnableVersions = Versions.Where(v => v.IsInstalled).ToList();

            // VSIX plugin
            VsixVersion = new SDKVersion();
            var vsixPackageList = serverVsixPackages;

            if (vsixPackageList.IsEmpty())
            {
                vsixPackageList = localVsixPackages;
            }

            if (!vsixPackageList.IsEmpty())
            {
                var latestVsix = vsixPackageList.FirstOrDefault();
                VsixVersion.LatestAvailablePackage = latestVsix;

                // Check our VSIX currently installed
                VsixVersion.InstalledPackage = manager.LocalRepository.FindPackagesById(vsixPackageName).OrderByDescending(p => p.Version).FirstOrDefault();
            }
        }
예제 #2
0
        // Synchronize remote and local data
        public void synchronizeData()
        {
            Versions.Clear();
            RunnableVersions.Clear();
            VsixVersion = null;

            // If we don't have the remote list, build from the local package list
            var packageList = serverPackages;
            if (packageList.IsEmpty()) packageList = localPackages;

            // Group packages by Major.Minor revision
            var majorMinorPkg = packageList.GroupBy(p => p.Version.Version.Major, p => p);

            foreach (var major in majorMinorPkg)
            {
                var majorVersion = major.Key;

                var minorPkg = major.GroupBy(p => p.Version.Version.Minor, p => p);

                foreach (var minor in minorPkg)
                {
                    var latestPackage = minor.First();

                    var sdkVersionItem = new SDKVersion()
                    {
                        LatestAvailablePackage = latestPackage,
                        Major = majorVersion,
                        Minor = latestPackage.Version.Version.Minor
                    };

                    // Check if we have one revision of the Major.Minor version already installed locally
                    var localPackage = manager.LocalRepository.FindPackagesById(packageName).OrderByDescending(p => p.Version)
                                            .FirstOrDefault(p => p.Version.Version.Major == sdkVersionItem.Major && p.Version.Version.Minor == sdkVersionItem.Minor);
                    sdkVersionItem.InstalledPackage = localPackage;

                    Versions.Add(sdkVersionItem);
                }

            }

            // List of the startable versions
            RunnableVersions = Versions.Where(v => v.IsInstalled).ToList();

            // VSIX plugin
            VsixVersion = new SDKVersion();
            var vsixPackageList = serverVsixPackages;
            if (vsixPackageList.IsEmpty()) vsixPackageList = localVsixPackages;

            if (!vsixPackageList.IsEmpty())
            {
                var latestVsix = vsixPackageList.FirstOrDefault();
                VsixVersion.LatestAvailablePackage = latestVsix;

                // Check our VSIX currently installed
                VsixVersion.InstalledPackage = manager.LocalRepository.FindPackagesById(vsixPackageName).OrderByDescending(p => p.Version).FirstOrDefault();
            }
        }