Exemplo n.º 1
0
        internal static async Task <bool> IsLatestInstalled(string dev_mod)
        {
            var release = await LoadLatestModRelease(dev_mod);

            var latestTag = release.Tag_name;

            return(InstalledVersions.Any(x => x.Tag_name.ToLower().Equals(latestTag.ToLower())));
        }
        private void UpdateSize()
        {
            InstalledVersionsTotalSize = InstalledVersions.Select(i => i.Size).Sum();
            InstalledVersionsFreeSize  = InstalledVersions.Select(i => i).Where(i => i.IsChecked == true).Sum(i => i.Size);

            CacheTotalSize = Cache.Select(i => i.Size).Sum();
            CacheFreeSize  = Cache.Select(i => i).Where(i => i.IsChecked == true).Sum(i => i.Size);

            InfoBasesTotalSize = InfoBases.Select(i => i.Size).Sum();
            InfoBasesFreeSize  = InfoBases.Select(i => i).Where(i => i.IsChecked == true).Sum(i => i.Size);
        }
Exemplo n.º 3
0
        static VsVersions()
        {
            var versions = new List <string>();

            using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\SxS\VS7"))
            {
                versions.AddRange(key
                                  .GetValueNames()
                                  .Where(version => Directory.Exists(Path.Combine((string)key.GetValue(version), "VSSDK"))));
            }

            var query     = (ISetupConfiguration2) new SetupConfiguration();
            var e         = query.EnumAllInstances();
            var helper    = (ISetupHelper)query;
            var instances = new List <ISetupInstance2>();
            var result    = new ISetupInstance[1];
            int fetched;

            do
            {
                e.Next(1, result, out fetched);
                if (fetched > 0)
                {
                    instances.Add((ISetupInstance2)result[0]);
                }
            } while (fetched > 0);

            var vs2017 = from instance in instances
                         let state = instance.GetState()
                                     where state == InstanceState.Complete &&
                                     (state & InstanceState.Local) == InstanceState.Local &&
                                     // Require the VSSDK workload, just like we do for pre-2017 VS
                                     instance.GetPackages().Any(package => package.GetId() == "Microsoft.VisualStudio.Workload.VisualStudioExtension")
                                     let productVersion = (string)(instance as ISetupInstanceCatalog)?.GetCatalogInfo()?.GetValue("productSemanticVersion")
                                                          where productVersion != null
                                                          let semver = NuGet.Versioning.SemanticVersion.Parse(productVersion)
                                                                       select new Version(semver.Major, 0);

            versions.AddRange(vs2017.Distinct().Select(v => v.ToString()));
            versions.Sort();

            InstalledVersions = versions.Distinct().ToArray();
            LatestVersion     = InstalledVersions.LastOrDefault();
            s_tracer.TraceInformation(Strings.VsVersions.InstalledVersions(string.Join(", ", InstalledVersions)));
            s_tracer.TraceInformation(Strings.VsVersions.LatestVersion(LatestVersion));

            var currentVersion = Environment.GetEnvironmentVariable("VisualStudioVersion");

            if (!string.IsNullOrEmpty(currentVersion) && InstalledVersions.Contains(currentVersion))
            {
                CurrentVersion = currentVersion;
                s_tracer.TraceInformation(Strings.VsVersions.CurrentVersion(currentVersion));
            }
        }
Exemplo n.º 4
0
        public BatchRunnerModel(IApplicationProvider appProvider, IRecentFilesManager recentFilesMgr)
        {
            m_AppProvider    = appProvider;
            m_RecentFilesMgr = recentFilesMgr;
            RecentFiles      = new ObservableCollection <string>(m_RecentFilesMgr.RecentFiles);

            InstalledVersions = m_AppProvider.GetInstalledVersions().ToArray();

            if (!InstalledVersions.Any())
            {
                throw new UserMessageException("Failed to detect any installed version of the host application");
            }
        }
 private async void PopulateInstalledVersions()
 {
     InstalledVersionsArePopulating = true;
     InstalledVersions.Clear();
     foreach (var item in await Platform.GetInstalledVersions())
     {
         InstalledVersions.Add(
             new InstalledVersionItemViewModel()
         {
             Name        = item.Name,
             UUID        = item.UUID,
             Size        = item.Size,
             Version     = item.VersionInt,
             InstallDate = item.InstallDate
         }
             );
     }
     InstalledVersionsArePopulating = false;
 }
        private async void Uninstall()
        {
            if (Status == Status.Uninstalling)
            {
                Status   = Status.Idle;
                Progress = 0d;
                return;
            }
            else
            {
                Status = Status.Uninstalling;
            }

            var view = CollectionViewSource.GetDefaultView(InstalledVersions);

            view.Filter = x =>
            {
                var item = x as InstalledVersionItemViewModel;
                return(item.IsChecked == true && Status == Status.Uninstalling);
            };

            int index = 0;
            List <InstalledVersionItemViewModel> list = InstalledVersions.Where(item => item.IsChecked).ToList();

            foreach (var item in list)
            {
                if (item.IsChecked && Status == Status.Uninstalling)
                {
                    var result = await Platform.Uninstall(item.UUID);

                    if (result)
                    {
                        InstalledVersions.Remove(item);
                        index++;

                        Progress = (double)index / (double)list.Count;
                    }
                }
            }

            view.Filter = null;
            Status      = Status.Idle;
        }
Exemplo n.º 7
0
        public BatchRunnerModel(IApplicationProvider appProvider, IRecentFilesManager recentFilesMgr,
                                IMacroFileFilterProvider macroFilterProvider, Func <BatchJob, IBatchRunJobExecutor> execFact)
        {
            m_AppProvider    = appProvider;
            m_RecentFilesMgr = recentFilesMgr;
            RecentFiles      = new ObservableCollection <string>(m_RecentFilesMgr.RecentFiles);

            InputFilesFilter = appProvider.InputFilesFilter;
            MacroFilesFilter = macroFilterProvider.GetSupportedMacros()
                               .Union(new FileFilter[] { FileFilter.AllFiles }).ToArray();

            m_ExecFact = execFact;

            InstalledVersions = m_AppProvider.GetInstalledVersions().ToArray();

            if (!InstalledVersions.Any())
            {
                throw new UserMessageException("Failed to detect any installed version of the host application");
            }
        }