コード例 #1
0
ファイル: MockPackageManager.cs プロジェクト: henjuv/Mg2
        private void Reinstall(PackageAction action)
        {
            var package = (Package)action.Package;

            if (ShouldFetch(package))
            {
                action.AddAction(new PackageAction(package, "fetch"));
            }
            action.AddAction(new PackageAction(package, "uninstall"));
            action.AddAction(new PackageAction(package, "install"));

            CreateTask(action.Actions).RunSynchronously();
        }
コード例 #2
0
ファイル: MockPackageManager.cs プロジェクト: henjuv/Mg2
        private void Update(PackageAction action)
        {
            var package = (Package)action.Package;

            if (package.Flags.All(n => n != "installed"))
            {
                action.Progress = 100;
                action.Status = "failed";
                return;
            }

            var latest =
                _packages.SingleOrDefault(
                    n => n.Id == package.Id && n.Flags.All(m => m != "installed") && n.Flags.Any(m => m == "latest"));

            if (latest == null)
            {
                action.Progress = 100;
                action.Status = "failed";
                return;
            }

            if (ShouldFetch(latest))
            {
                action.AddAction(new PackageAction(latest, "fetch"));
            }
            if (ShouldInstall(latest))
            {
                action.AddAction(new PackageAction(latest, "install"));
            }

            if (!action.Actions.Any())
            {
                action.Progress = 100;
                action.Status = "failed";
                return;
            }

            action.IsIndeterminate = true;
            action.Status = "updating";

            CreateTask(action.Actions).RunSynchronously();

            action.Progress = 100;
            action.Status = "updated";
            package.RemoveFlags("updatable");
        }
コード例 #3
0
ファイル: MockPackageManager.cs プロジェクト: henjuv/Mg2
        private void Install(PackageAction action)
        {
            lock (_installLock)
            {
                var package = (Package) action.Package;

                if (ShouldFetch(package))
                {
                    action.AddAction(new PackageAction(package, "fetch"));
                    CreateTask(action.Actions).RunSynchronously();
                }

                action.Status = "installing";
                SimulateProgressUpdate(action);
                action.Status = "installed";
                package.AddFlags("installed");
            }
        }