예제 #1
0
        public override bool ShouldPerformTreatment()
        {
            int packageCount = 0;
            IEnumerable <Package> packages = packageManager.FindPackages();

            foreach (var package in packages)
            {
                // Don't remove frameworks or system packages
                if (
                    package.IsFramework ||
                    package.SignatureKind == PackageSignatureKind.System
                    )
                {
                    continue;
                }

                if (StoreApps.ShouldRemove(package.Id.Name))
                {
                    packageCount += 1;
                }
                else
                {
                    Logger.Log("Not removing {0}", package.Id.Name);
                }
            }

            if (packageCount > 0)
            {
                return(true);
            }

            return(false);
        }
예제 #2
0
        public override bool PerformTreatment()
        {
            int packageCount = 0;
            IEnumerable <Package> packages = packageManager.FindPackages();

            foreach (var package in packages)
            {
                // Don't remove frameworks or system packages
                if (
                    package.IsFramework ||
                    package.SignatureKind == PackageSignatureKind.System
                    )
                {
                    continue;
                }

                if (StoreApps.ShouldRemove(package.Id.Name))
                {
                    RemovePackage(package);
                    packageCount += 1;
                }
                else
                {
                    Logger.Log("Not removing {0}", package.Id.Name);
                }
            }

            if (packageCount <= 0)
            {
                Logger.Log("No Windows Store applications were uninstalled.");
            }
            Logger.Log("");

            return(true);
        }
예제 #3
0
        public override bool ShouldPerformTreatment()
        {
            int packageCount = 0;

            try
            {
                using (DismSession session = DismApi.OpenOnlineSession())
                {
                    DismAppxPackageCollection dismAppxPackages = DismApi.GetProvisionedAppxPackages(session);
                    foreach (var package in dismAppxPackages)
                    {
                        if (StoreApps.ShouldRemove(package.DisplayName))
                        {
                            Logger.Log("Would deprovision {0}", package.DisplayName);
                            packageCount += 1;
                        }
                        else
                        {
                            Logger.Log("Not deprovisioning {0}", package.DisplayName);
                        }
                    }
                }
            }
            catch
            {
                return(false);
            }

            if (packageCount > 0)
            {
                return(true);
            }

            return(false);
        }
예제 #4
0
        public override bool PerformTreatment()
        {
            int packageCount = 0;
            IEnumerable <Package> packages = packageManager.FindPackages();

            foreach (var package in packages)
            {
                if (StoreApps.ShouldRemove(package.Id.Name))
                {
                    RemovePackage(package);
                    packageCount += 1;
                }
                else
                {
                    Logger.Log("Not removing {0}", package.Id.Name);
                }
            }

            if (packageCount <= 0)
            {
                Logger.Log("No Windows Store applications were uninstalled.");
            }
            Logger.Log("");

            return(true);
        }
예제 #5
0
        public override bool ShouldPerformTreatment()
        {
            int packageCount = 0;
            IEnumerable <Package> packages = packageManager.FindPackages();

            foreach (Package package in packages)
            {
                if (StoreApps.ShouldRemove(package.Id.Name))
                {
                    Logger.Log("Would remove {0}", package.Id.Name);
                    packageCount += 1;
                }
                else
                {
                    Logger.Log("Not removing {0}", package.Id.Name);
                }
            }

            if (packageCount > 0)
            {
                return(true);
            }

            return(false);
        }
        public void SaveState()
        {
            if (AppQueryParameters.AppType == AppType.Application)
            {
                TopApplications.Clear();
                StoreApps.ForEach(app => TopApplications.Add(app));
            }

            if (AppQueryParameters.AppType == AppType.Game)
            {
                TopGames.Clear();
                StoreApps.ForEach(app => TopGames.Add(app));
            }
        }
 public void RestoreState()
 {
     // Restore Cached Apps
     StoreApps.Clear();
     _hasMoreItems = true;
     if (AppQueryParameters.AppType == AppType.Application)
     {
         TopApplications.ForEach(app => StoreApps.Add(app));
     }
     if (AppQueryParameters.AppType == AppType.Game)
     {
         TopGames.ForEach(app => StoreApps.Add(app));
     }
 }
예제 #8
0
        public override bool PerformTreatment()
        {
            int removedPackageCount = 0;

            try
            {
                using (DismSession session = DismApi.OpenOnlineSession())
                {
                    DismAppxPackageCollection dismAppxPackages = DismApi.GetProvisionedAppxPackages(session);
                    foreach (var package in dismAppxPackages)
                    {
                        try
                        {
                            if (StoreApps.ShouldRemove(package.DisplayName))
                            {
                                DismApi.RemoveProvisionedAppxPackage(session, package.PackageName);
                                Logger.Log("Successfully deprovisioned {0}", package.DisplayName);
                                removedPackageCount += 1;
                            }
                            else
                            {
                                Logger.Log("Not deprovisioning {0}", package.DisplayName);
                            }
                        }
                        catch (DismRebootRequiredException ex)
                        {
                            Logger.Log("Successfully deprovisioned {0}: {1}", package.DisplayName, ex.Message);
                            removedPackageCount += 1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Log("An error occurred while deprovisioning packages: {0}", ex.Message);
                return(false);
            }

            if (removedPackageCount <= 0)
            {
                Logger.Log("No Windows Store packages were deprovisioned.");
            }

            return(true);
        }
예제 #9
0
 public void ItRemovesCandyCrush()
 {
     Assert.True(StoreApps.ShouldRemove("king.com.CandyCrushSaga"));
 }
예제 #10
0
 public void ItSkipsJunkPackages()
 {
     Assert.False(StoreApps.ShouldRemove("foobar"));
 }
예제 #11
0
 public void ItDoesNotRemoveMediaExtensions()
 {
     Assert.False(StoreApps.ShouldRemove("Microsoft.WebpImageExtension"));
     Assert.False(StoreApps.ShouldRemove("Microsoft.VP9VideoExtensions"));
     Assert.False(StoreApps.ShouldRemove("Microsoft.HEIFImageExtension"));
 }