Inheritance: Urasandesu.Prig.VSPackage.Infrastructure.PackageViewModel
コード例 #1
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
 public virtual void EnableTestAdapter(PrigViewModel vm)
 {
     if (EnableTestAdapterCore(vm))
     {
         vm.IsTestAdapterEnabled.Value = true;
     }
 }
コード例 #2
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
 public virtual void DisableTestAdapter(PrigViewModel vm)
 {
     if (DisableTestAdapterCore(vm))
     {
         vm.IsTestAdapterEnabled.Value = false;
     }
 }
コード例 #3
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        bool DisableTestAdapterCore(PrigViewModel vm)
        {
            vm.BeginProjectWideProcessProgress(ProjectWideProcesses.TestAdapterDisabling);


            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);

            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(25u, profLoc);
            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, null);
                vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, null);
                return(false);
            }


            var command =
                @"
Import-Module ([IO.Path]::Combine($env:URASANDESU_PRIG_PACKAGE_FOLDER, 'tools\Urasandesu.Prig'))
Disable-PrigTestAdapter
";
            var mci = new ManagementCommandInfo(command);

            mci.CommandExecuting += () => vm.ReportProcessingProjectWideProcessProgress(50u, null);
            mci.CommandExecuted  += () => vm.EndCompletedProjectWideProcessProgress(null);
            ManagementCommandExecutor.Execute(mci);

            return(true);
        }
コード例 #4
0
ファイル: PrigPackageTest.cs プロジェクト: urasandesu/Prig
        public void NewDisableTestAdapterCommand_should_bind_Text_property_to_CurrentProject_status()
        {
            // Arrange
            var fixture = new Fixture().Customize(new AutoMoqCustomization());
            var projName = fixture.Create<string>();
            {
                var m = fixture.Freeze<Mock<Project>>();
                m.Setup(_ => _.Name).Returns(projName);
            }

            var vm = new PrigViewModel();
            var menuCommand = PrigPackage.NewDisableTestAdapterCommand(vm);
            menuCommand.Text = null;

            // Act
            vm.CurrentProject.Value = null;
            var defaultText = menuCommand.Text;
            vm.CurrentProject.Value = fixture.Freeze<Project>();
            var projectSelectedText = menuCommand.Text;

            // Assert
            Assert.IsNotNull(defaultText);
            Assert.AreNotEqual(defaultText, projectSelectedText);
            Assert.That(projectSelectedText, Is.StringMatching(projName));
        }
コード例 #5
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void RemovePrigAssembly(PrigViewModel vm)
        {
            var projItem          = MonitoringSelectionService.GetSelectedItem <ProjectItem>();
            var deletionalInclude = Regex.Replace(projItem.Name, @"(.*)\.prig$", "$1");

            RemovePrigAssemblyCore(vm, deletionalInclude);
        }
コード例 #6
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void EditPrigIndirectionSettings(PrigViewModel vm)
        {
            var projItem         = MonitoringSelectionService.GetSelectedItem <ProjectItem>();
            var editorialInclude = Regex.Replace(projItem.Name, @"(.*)\.v\d+\.\d+\.\d+\.v\d+\.\d+\.\d+\.\d+\.prig", "$1");

            EditPrigIndirectionSettingsCore(vm, editorialInclude);
        }
コード例 #7
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void PrepareUnregisteringPrig(PrigViewModel vm)
        {
            vm.BeginMachineWideProcessProgress(MachineWideProcesses.Uninstalling);

            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);

            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(50u, profLoc);

            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedMachineWideProcessMessage(SkippedReasons.AlreadyRegistered);
                vm.EndSkippedMachineWideProcessProgress(SkippedReasons.AlreadyRegistered);
                return;
            }


            if (!WindowsIdentity.GetCurrent().IsElevated())
            {
                vm.ShowVisualStudioHasNotBeenElevatedYetMessage();
                if (ProcessMixin.RestartCurrentProcessWith(_ => { _.Verb = "runas"; }))
                {
                    return;
                }

                vm.EndSkippedMachineWideProcessProgress(SkippedReasons.CanceledByUser);
            }
            else
            {
                UnregisterPrig(vm);
            }
        }
コード例 #8
0
ファイル: PrigPackage.cs プロジェクト: poizan42/Prig
        static MenuCommand NewAddPrigAssemblyCommand(PrigViewModel vm)
        {
            var commandId   = new CommandID(GuidList.AddPrigAssemblyGroup, (int)PkgCmdIDList.AddPrigAssemblyCommand);
            var handler     = new EventHandler((sender, e) => vm.AddPrigAssemblyCommand.Execute(sender));
            var menuCommand = new MenuCommand(handler, commandId);

            return(menuCommand);
        }
コード例 #9
0
ファイル: PrigPackage.cs プロジェクト: poizan42/Prig
        static MenuCommand NewUnregisterPrigCommand(PrigViewModel vm)
        {
            var commandId   = new CommandID(GuidList.RegistrationMenuGroup, (int)PkgCmdIDList.UnregisterPrigCommand);
            var handler     = new EventHandler((sender, e) => vm.UnregisterPrigCommand.Execute(sender));
            var menuCommand = new MenuCommand(handler, commandId);

            return(menuCommand);
        }
コード例 #10
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void OnProjectRemoved(PrigViewModel vm, Project proj)
        {
            if (!vm.HasEnabledTestAdapter(proj))
            {
                return;
            }

            DisableTestAdapter(vm);
        }
コード例 #11
0
        internal static OleMenuCommand NewDisableTestAdapterCommand(PrigViewModel vm)
        {
            var commandId   = new CommandID(GuidList.MainMenuGroup, (int)PkgCmdIDList.DisableTestAdapterCommand);
            var handler     = new EventHandler((sender, e) => vm.DisableTestAdapterCommand.Execute(sender));
            var menuCommand = new OleMenuCommand(handler, commandId);

            vm.DisableTestAdapterCommand.CanExecuteChanged += (sender, e) => menuCommand.Enabled = ((ICommand)sender).CanExecute(menuCommand);
            menuCommand.Enabled = false;
            return(menuCommand);
        }
コード例 #12
0
ファイル: PrigPackage.cs プロジェクト: poizan42/Prig
        static OleMenuCommand NewRemovePrigAssemblyCommand(PrigViewModel vm)
        {
            var commandId   = new CommandID(GuidList.EditPrigIndirectionSettingsGroup, (int)PkgCmdIDList.RemovePrigAssemblyCommand);
            var handler     = new EventHandler((sender, e) => vm.RemovePrigAssemblyCommand.Execute(sender));
            var menuCommand = new OleMenuCommand(handler, commandId);

            vm.RemovePrigAssemblyCommand.CanExecuteChanged += (sender, e) => menuCommand.Enabled = ((ICommand)sender).CanExecute(menuCommand);
            menuCommand.BeforeQueryStatus += (sender, e) => vm.EditPrigIndirectionSettingsBeforeQueryStatusCommand.Execute(sender);
            vm.IsEditPrigIndirectionSettingsCommandVisible.Subscribe(_ => menuCommand.Visible = _);
            return(menuCommand);
        }
コード例 #13
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
 public virtual void OnBuildDone(PrigViewModel vm)
 {
     if (!vm.HasEnabledTestAdapter())
     {
         DisableTestAdapter(vm);
     }
     else
     {
         EnableTestAdapterCore(vm);
     }
 }
コード例 #14
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void BeforeQueryStatusTestAdapter(PrigViewModel vm)
        {
            if (vm.IsTestAdapterEnabled.Value)
            {
                return;
            }

            var proj = MonitoringSelectionService.GetCurrentProject();

            vm.SetToCurrentProjectIfSupported(proj);
        }
コード例 #15
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        void RemovePrigAssemblyCore(PrigViewModel vm, string deletionalInclude)
        {
            vm.BeginProjectWideProcessProgress(ProjectWideProcesses.PrigAssemblyRemoving);


            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);

            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(13u, profLoc);
            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, deletionalInclude);
                vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, deletionalInclude);
                return;
            }


            if (!vm.ConfirmRemovingPrigAssembly(deletionalInclude))
            {
                return;
            }


            var proj = MonitoringSelectionService.GetCurrentProject();


            var pwPkg = new ProjectWidePackage(Resources.NuGetRootPackageId, Resources.NuGetRootPackageVersion, proj);

            pwPkg.PackagePreparing      += () => vm.ReportPackagePreparingProgress(25u);
            pwPkg.PackageInstalling     += metadata => vm.ReportPackageInstallingProgress(50u, metadata);
            pwPkg.PackageInstalled      += metadata => vm.ReportPackageInstalledProgress(50u, metadata);
            pwPkg.PackageReferenceAdded += metadata => vm.ReportPackageReferenceAddedProgress(50u, metadata);
            ProjectWideInstaller.Install(pwPkg);


            var command = string.Format(
                @"
Import-Module ([IO.Path]::Combine($env:URASANDESU_PRIG_PACKAGE_FOLDER, 'tools\Urasandesu.Prig'))
Start-PrigSetup -DeletionalInclude {0} -Project $Project
", deletionalInclude);
            var mci = new ManagementCommandInfo(command, proj);

            mci.CommandExecuting += () => vm.ReportProcessingProjectWideProcessProgress(75u, deletionalInclude);
            mci.CommandExecuted  +=
                () =>
            {
                vm.ShowCompletedProjectWideProcessMessage(deletionalInclude);
                vm.EndCompletedProjectWideProcessProgress(deletionalInclude);
            };
            ManagementCommandExecutor.Execute(mci);
        }
コード例 #16
0
ファイル: PrigPackage.cs プロジェクト: poizan42/Prig
        internal static OleMenuCommand NewDisableTestAdapterCommand(PrigViewModel vm)
        {
            var commandId   = new CommandID(GuidList.MainMenuGroup, (int)PkgCmdIDList.DisableTestAdapterCommand);
            var handler     = new EventHandler((sender, e) => vm.DisableTestAdapterCommand.Execute(sender));
            var menuCommand = new OleMenuCommand(handler, commandId);

            vm.DisableTestAdapterCommand.CanExecuteChanged += (sender, e) => menuCommand.Enabled = ((ICommand)sender).CanExecute(menuCommand);
            menuCommand.Enabled = false;
            var text = PrigResources.GetString("DisableTestAdapterMenu");

            vm.CurrentProject.Subscribe(
                proj => menuCommand.Text = proj == null ? text : string.Format(PrigResources.GetString("_0_For_1_MenuFormat"), text, proj.Name));
            return(menuCommand);
        }
コード例 #17
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void UnregisterPrig(PrigViewModel vm)
        {
            var umwPkg = new MachineWideUninstallation(Resources.NuGetRootPackageVersion);

            umwPkg.Preparing += () => vm.BeginMachineWideProcessProgress(MachineWideProcesses.Uninstalling);
            umwPkg.ProfilerStatusChecking           += profLoc => vm.ReportProfilerStatusCheckingProgress(10u, profLoc);
            umwPkg.PrigSourceUninstalling           += pkgName => vm.ReportPrigSourceProcessingProgress(20u, pkgName, null);
            umwPkg.PrigSourceUninstalled            += stdout => vm.ReportPrigSourceProcessedProgress(30u, stdout);
            umwPkg.ProfilerUnregistering            += profLoc => vm.ReportProfilerProcessingProgress(40u, profLoc);
            umwPkg.ProfilerUnregistered             += stdout => vm.ReportProfilerProcessedProgress(50u, stdout);
            umwPkg.EnvironmentVariableUnregistering += name => vm.ReportEnvironmentVariableProcessingProgress(60u, name, null);
            umwPkg.EnvironmentVariableUnregistered  += name => vm.ReportEnvironmentVariableProcessedProgress(70u);
            umwPkg.NuGetSourceUnregistering         += name => vm.ReportNuGetSourceProcessingProgress(80u, name, null);
            umwPkg.NuGetSourceUnregistered          += stdout => vm.ReportNuGetSourceProcessedProgress(90u, stdout);
            umwPkg.Completed += result => OnCompletedUnregisterPrig(vm, result);

            MachineWideInstaller.Uninstall(umwPkg);
        }
コード例 #18
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        void RegisterPrig(PrigViewModel vm)
        {
            var mwInstl = new MachineWideInstallation(Resources.NuGetRootPackageVersion);

            mwInstl.Preparing += () => vm.BeginMachineWideProcessProgress(MachineWideProcesses.Installing);
            mwInstl.ProfilerStatusChecking         += profLoc => vm.ReportProfilerStatusCheckingProgress(8u, profLoc);
            mwInstl.NuGetPackageCreating           += pkgName => vm.ReportNuGetPackageCreatingProgress(17u, pkgName);
            mwInstl.NuGetPackageCreated            += stdout => vm.ReportNuGetPackageCreatedProgress(25u, stdout);
            mwInstl.NuGetSourceRegistering         += (path, name) => vm.ReportNuGetSourceProcessingProgress(33u, path, name);
            mwInstl.NuGetSourceRegistered          += stdout => vm.ReportNuGetSourceProcessedProgress(42u, stdout);
            mwInstl.EnvironmentVariableRegistering += (name, value) => vm.ReportEnvironmentVariableProcessingProgress(50u, name, value);
            mwInstl.EnvironmentVariableRegistered  += (name, value) => vm.ReportEnvironmentVariableProcessedProgress(58u);
            mwInstl.ProfilerRegistering            += profLoc => vm.ReportProfilerProcessingProgress(67u, profLoc);
            mwInstl.ProfilerRegistered             += stdout => vm.ReportProfilerProcessedProgress(75u, stdout);
            mwInstl.PrigSourceInstalling           += (pkgName, src) => vm.ReportPrigSourceProcessingProgress(83u, pkgName, src);
            mwInstl.PrigSourceInstalled            += stdout => vm.ReportPrigSourceProcessedProgress(92u, stdout);
            mwInstl.Completed += result => OnCompletedRegisterPrig(vm, result);

            MachineWideInstaller.Install(mwInstl);
        }
コード例 #19
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        protected virtual void OnCompletedUnregisterPrig(PrigViewModel vm, MachineWideProcessResults result)
        {
            switch (result)
            {
            case MachineWideProcessResults.Skipped:
                vm.ShowSkippedMachineWideProcessMessage(SkippedReasons.AlreadyRegistered);
                vm.EndSkippedMachineWideProcessProgress(SkippedReasons.AlreadyRegistered);
                break;

            case MachineWideProcessResults.Completed:
                var restarts = vm.ConfirmRestartingVisualStudioToTakeEffect();
                vm.EndCompletedMachineWideProcessProgress();
                if (!restarts)
                {
                    return;
                }

                ProcessMixin.RestartCurrentProcess();
                break;
            }
        }
コード例 #20
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public UnregisterPrigCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #21
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
        public virtual void BeforeQueryStatusEditPrigIndirectionSettings(PrigViewModel vm)
        {
            var projItem = MonitoringSelectionService.GetSelectedItem <ProjectItem>();

            vm.SetEditPrigIndirectionSettingsCommandVisibility(projItem);
        }
コード例 #22
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void OnBuildDone(PrigViewModel vm)
 {
     if (!vm.HasEnabledTestAdapter())
         DisableTestAdapter(vm);
     else
         EnableTestAdapterCore(vm);
 }
コード例 #23
0
ファイル: PrigPackage.cs プロジェクト: urasandesu/Prig
 static OleMenuCommand NewRemovePrigAssemblyCommand(PrigViewModel vm)
 {
     var commandId = new CommandID(GuidList.EditPrigIndirectionSettingsGroup, (int)PkgCmdIDList.RemovePrigAssemblyCommand);
     var handler = new EventHandler((sender, e) => vm.RemovePrigAssemblyCommand.Execute(sender));
     var menuCommand = new OleMenuCommand(handler, commandId);
     vm.RemovePrigAssemblyCommand.CanExecuteChanged += (sender, e) => menuCommand.Enabled = ((ICommand)sender).CanExecute(menuCommand);
     menuCommand.BeforeQueryStatus += (sender, e) => vm.EditPrigIndirectionSettingsBeforeQueryStatusCommand.Execute(sender);
     vm.IsEditPrigIndirectionSettingsCommandVisible.Subscribe(_ => menuCommand.Visible = _);
     return menuCommand;
 }
コード例 #24
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public AddPrigAssemblyCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #25
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 protected PrigCommand(PrigViewModel vm, IObservable <bool> canExecuteSource)
     : base(vm, canExecuteSource)
 {
 }
コード例 #26
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void EditPrigIndirectionSettings(PrigViewModel vm)
 {
     var projItem = MonitoringSelectionService.GetSelectedItem<ProjectItem>();
     var editorialInclude = Regex.Replace(projItem.Name, @"(.*)\.v\d+\.\d+\.\d+\.v\d+\.\d+\.\d+\.\d+\.prig", "$1");
     EditPrigIndirectionSettingsCore(vm, editorialInclude);
 }
コード例 #27
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        bool EnableTestAdapterCore(PrigViewModel vm)
        {
            vm.BeginProjectWideProcessProgress(ProjectWideProcesses.TestAdapterEnabling);

            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);
            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(25u, profLoc);
            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, null);
                vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, null);
                return false;
            }

            var proj = vm.GetCurrentProjectOrException();

            var command =
            @"
            Import-Module ([IO.Path]::Combine($env:URASANDESU_PRIG_PACKAGE_FOLDER, 'tools\Urasandesu.Prig'))
            Enable-PrigTestAdapter -Project $Project
            ";
            var mci = new ManagementCommandInfo(command, proj);
            mci.CommandExecuting += () => vm.ReportProcessingProjectWideProcessProgress(50u, proj.Name);
            mci.CommandExecuted += () => vm.EndCompletedProjectWideProcessProgress(proj.Name);
            ManagementCommandExecutor.Execute(mci);

            return true;
        }
コード例 #28
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        protected virtual void OnCompletedUnregisterPrig(PrigViewModel vm, MachineWideProcessResults result)
        {
            switch (result)
            {
                case MachineWideProcessResults.Skipped:
                    vm.ShowSkippedMachineWideProcessMessage(SkippedReasons.AlreadyRegistered);
                    vm.EndSkippedMachineWideProcessProgress(SkippedReasons.AlreadyRegistered);
                    break;
                case MachineWideProcessResults.Completed:
                    var restarts = vm.ConfirmRestartingVisualStudioToTakeEffect();
                    vm.EndCompletedMachineWideProcessProgress();
                    if (!restarts)
                        return;

                    ProcessMixin.RestartCurrentProcess();
                    break;
            }
        }
コード例 #29
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        public virtual void UnregisterPrig(PrigViewModel vm)
        {
            var umwPkg = new MachineWideUninstallation(Resources.NuGetRootPackageVersion);
            umwPkg.Preparing += () => vm.BeginMachineWideProcessProgress(MachineWideProcesses.Uninstalling);
            umwPkg.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(10u, profLoc);
            umwPkg.PrigSourceUninstalling += pkgName => vm.ReportPrigSourceProcessingProgress(20u, pkgName, null);
            umwPkg.PrigSourceUninstalled += stdout => vm.ReportPrigSourceProcessedProgress(30u, stdout);
            umwPkg.ProfilerUnregistering += profLoc => vm.ReportProfilerProcessingProgress(40u, profLoc);
            umwPkg.ProfilerUnregistered += stdout => vm.ReportProfilerProcessedProgress(50u, stdout);
            umwPkg.EnvironmentVariableUnregistering += name => vm.ReportEnvironmentVariableProcessingProgress(60u, name, null);
            umwPkg.EnvironmentVariableUnregistered += name => vm.ReportEnvironmentVariableProcessedProgress(70u);
            umwPkg.NuGetSourceUnregistering += name => vm.ReportNuGetSourceProcessingProgress(80u, name, null);
            umwPkg.NuGetSourceUnregistered += stdout => vm.ReportNuGetSourceProcessedProgress(90u, stdout);
            umwPkg.Completed += result => OnCompletedUnregisterPrig(vm, result);

            MachineWideInstaller.Uninstall(umwPkg);
        }
コード例 #30
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void RemovePrigAssembly(PrigViewModel vm)
 {
     var projItem = MonitoringSelectionService.GetSelectedItem<ProjectItem>();
     var deletionalInclude = Regex.Replace(projItem.Name, @"(.*)\.prig$", "$1");
     RemovePrigAssemblyCore(vm, deletionalInclude);
 }
コード例 #31
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        public virtual void PrepareUnregisteringPrig(PrigViewModel vm)
        {
            vm.BeginMachineWideProcessProgress(MachineWideProcesses.Uninstalling);

            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);
            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(50u, profLoc);

            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedMachineWideProcessMessage(SkippedReasons.AlreadyRegistered);
                vm.EndSkippedMachineWideProcessProgress(SkippedReasons.AlreadyRegistered);
                return;
            }

            if (!WindowsIdentity.GetCurrent().IsElevated())
            {
                vm.ShowVisualStudioHasNotBeenElevatedYetMessage();
                if (ProcessMixin.RestartCurrentProcessWith(_ => { _.Verb = "runas"; }))
                    return;

                vm.EndSkippedMachineWideProcessProgress(SkippedReasons.CanceledByUser);
            }
            else
            {
                UnregisterPrig(vm);
            }
        }
コード例 #32
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        public virtual void OnProjectRemoved(PrigViewModel vm, Project proj)
        {
            if (!vm.HasEnabledTestAdapter(proj))
                return;

            DisableTestAdapter(vm);
        }
コード例 #33
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        void RegisterPrig(PrigViewModel vm)
        {
            var mwInstl = new MachineWideInstallation(Resources.NuGetRootPackageVersion);
            mwInstl.Preparing += () => vm.BeginMachineWideProcessProgress(MachineWideProcesses.Installing);
            mwInstl.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(8u, profLoc);
            mwInstl.NuGetPackageCreating += pkgName => vm.ReportNuGetPackageCreatingProgress(17u, pkgName);
            mwInstl.NuGetPackageCreated += stdout => vm.ReportNuGetPackageCreatedProgress(25u, stdout);
            mwInstl.NuGetSourceRegistering += (path, name) => vm.ReportNuGetSourceProcessingProgress(33u, path, name);
            mwInstl.NuGetSourceRegistered += stdout => vm.ReportNuGetSourceProcessedProgress(42u, stdout);
            mwInstl.EnvironmentVariableRegistering += (name, value) => vm.ReportEnvironmentVariableProcessingProgress(50u, name, value);
            mwInstl.EnvironmentVariableRegistered += (name, value) => vm.ReportEnvironmentVariableProcessedProgress(58u);
            mwInstl.ProfilerRegistering += profLoc => vm.ReportProfilerProcessingProgress(67u, profLoc);
            mwInstl.ProfilerRegistered += stdout => vm.ReportProfilerProcessedProgress(75u, stdout);
            mwInstl.PrigSourceInstalling += (pkgName, src) => vm.ReportPrigSourceProcessingProgress(83u, pkgName, src);
            mwInstl.PrigSourceInstalled += stdout => vm.ReportPrigSourceProcessedProgress(92u, stdout);
            mwInstl.Completed += result => OnCompletedRegisterPrig(vm, result);

            MachineWideInstaller.Install(mwInstl);
        }
コード例 #34
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        void RemovePrigAssemblyCore(PrigViewModel vm, string deletionalInclude)
        {
            vm.BeginProjectWideProcessProgress(ProjectWideProcesses.PrigAssemblyRemoving);

            var machinePreq = new MachinePrerequisite(Resources.NuGetRootPackageVersion);
            machinePreq.ProfilerStatusChecking += profLoc => vm.ReportProfilerStatusCheckingProgress(13u, profLoc);
            if (!MachineWideInstaller.HasBeenInstalled(machinePreq))
            {
                vm.ShowSkippedProjectWideProcessMessage(SkippedReasons.NotRegisteredYet, deletionalInclude);
                vm.EndSkippedProjectWideProcessProgress(SkippedReasons.NotRegisteredYet, deletionalInclude);
                return;
            }

            if (!vm.ConfirmRemovingPrigAssembly(deletionalInclude))
                return;

            var proj = MonitoringSelectionService.GetCurrentProject();

            var pwPkg = new ProjectWidePackage(Resources.NuGetRootPackageId, Resources.NuGetRootPackageVersion, proj);
            pwPkg.PackagePreparing += () => vm.ReportPackagePreparingProgress(25u);
            pwPkg.PackageInstalling += metadata => vm.ReportPackageInstallingProgress(50u, metadata);
            pwPkg.PackageInstalled += metadata => vm.ReportPackageInstalledProgress(50u, metadata);
            pwPkg.PackageReferenceAdded += metadata => vm.ReportPackageReferenceAddedProgress(50u, metadata);
            ProjectWideInstaller.Install(pwPkg);

            var command = string.Format(
            @"
            Import-Module ([IO.Path]::Combine($env:URASANDESU_PRIG_PACKAGE_FOLDER, 'tools\Urasandesu.Prig'))
            Start-PrigSetup -DeletionalInclude {0} -Project $Project
            ", deletionalInclude);
            var mci = new ManagementCommandInfo(command, proj);
            mci.CommandExecuting += () => vm.ReportProcessingProjectWideProcessProgress(75u, deletionalInclude);
            mci.CommandExecuted +=
                () =>
                {
                    vm.ShowCompletedProjectWideProcessMessage(deletionalInclude);
                    vm.EndCompletedProjectWideProcessProgress(deletionalInclude);
                };
            ManagementCommandExecutor.Execute(mci);
        }
コード例 #35
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 protected PrigCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #36
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void AddPrigAssembly(PrigViewModel vm)
 {
     AddPrigAssemblyCore(vm, MonitoringSelectionService.GetSelectedItem<Reference5>().Identity);
 }
コード例 #37
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public AddPrigAssemblyForMSCorLibCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #38
0
ファイル: PrigPackage.cs プロジェクト: urasandesu/Prig
 static MenuCommand NewAddPrigAssemblyForMSCorLibCommand(PrigViewModel vm)
 {
     var commandId = new CommandID(GuidList.AddPrigAssemblyForMSCorLibGroup, (int)PkgCmdIDList.AddPrigAssemblyForMSCorLibCommand);
     var handler = new EventHandler((sender, e) => vm.AddPrigAssemblyForMSCorLibCommand.Execute(sender));
     var menuCommand = new MenuCommand(handler, commandId);
     return menuCommand;
 }
コード例 #39
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public EnableTestAdapterCommand(PrigViewModel vm, IObservable <bool> canExecuteSource)
     : base(vm, canExecuteSource)
 {
 }
コード例 #40
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public DisableTestAdapterCommand(PrigViewModel vm, IObservable<bool> canExecuteSource)
     : base(vm, canExecuteSource)
 {
 }
コード例 #41
0
ファイル: PrigPackage.cs プロジェクト: urasandesu/Prig
 static MenuCommand NewUnregisterPrigCommand(PrigViewModel vm)
 {
     var commandId = new CommandID(GuidList.RegistrationMenuGroup, (int)PkgCmdIDList.UnregisterPrigCommand);
     var handler = new EventHandler((sender, e) => vm.UnregisterPrigCommand.Execute(sender));
     var menuCommand = new MenuCommand(handler, commandId);
     return menuCommand;
 }
コード例 #42
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void EnableTestAdapter(PrigViewModel vm)
 {
     if (EnableTestAdapterCore(vm))
         vm.IsTestAdapterEnabled.Value = true;
 }
コード例 #43
0
ファイル: PrigPackage.cs プロジェクト: urasandesu/Prig
 internal static OleMenuCommand NewEnableTestAdapterCommand(PrigViewModel vm)
 {
     var commandId = new CommandID(GuidList.MainMenuGroup, (int)PkgCmdIDList.EnableTestAdapterCommand);
     var handler = new EventHandler((sender, e) => vm.EnableTestAdapterCommand.Execute(sender));
     var menuCommand = new OleMenuCommand(handler, commandId);
     vm.EnableTestAdapterCommand.CanExecuteChanged += (sender, e) => menuCommand.Enabled = ((ICommand)sender).CanExecute(menuCommand);
     menuCommand.BeforeQueryStatus += (sender, e) => vm.TestAdapterBeforeQueryStatusCommand.Execute(sender);
     var text = PrigResources.GetString("EnableTestAdapterMenu");
     vm.CurrentProject.Subscribe(
         proj => menuCommand.Text = proj == null ? text : string.Format(PrigResources.GetString("_0_For_1_MenuFormat"), text, proj.Name));
     return menuCommand;
 }
コード例 #44
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
 public virtual void AddPrigAssembly(PrigViewModel vm)
 {
     AddPrigAssemblyCore(vm, MonitoringSelectionService.GetSelectedItem <Reference5>().Identity);
 }
コード例 #45
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public AddPrigAssemblyForMSCorLibCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #46
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public RemovePrigAssemblyCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #47
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public AddPrigAssemblyCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #48
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public RemovePrigAssemblyCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #49
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public TestAdapterBeforeQueryStatusCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #50
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public EditPrigIndirectionSettingsBeforeQueryStatusCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #51
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public OnBuildDoneCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #52
0
ファイル: PrigCommands.cs プロジェクト: walterstypula/Prig
 public ProjectRemovedCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #53
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void AddPrigAssemblyForMSCorLib(PrigViewModel vm)
 {
     AddPrigAssemblyCore(vm, "mscorlib");
 }
コード例 #54
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void DisableTestAdapter(PrigViewModel vm)
 {
     if (DisableTestAdapterCore(vm))
         vm.IsTestAdapterEnabled.Value = false;
 }
コード例 #55
0
ファイル: PrigController.cs プロジェクト: poizan42/Prig
 public virtual void AddPrigAssemblyForMSCorLib(PrigViewModel vm)
 {
     AddPrigAssemblyCore(vm, "mscorlib");
 }
コード例 #56
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 protected PrigCommand(PrigViewModel vm, IObservable<bool> canExecuteSource)
     : base(vm, canExecuteSource)
 {
 }
コード例 #57
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
 public virtual void BeforeQueryStatusEditPrigIndirectionSettings(PrigViewModel vm)
 {
     var projItem = MonitoringSelectionService.GetSelectedItem<ProjectItem>();
     vm.SetEditPrigIndirectionSettingsCommandVisibility(projItem);
 }
コード例 #58
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 public ProjectRemovedCommand(PrigViewModel vm)
     : base(vm)
 {
 }
コード例 #59
0
ファイル: PrigController.cs プロジェクト: urasandesu/Prig
        public virtual void BeforeQueryStatusTestAdapter(PrigViewModel vm)
        {
            if (vm.IsTestAdapterEnabled.Value)
                return;

            var proj = MonitoringSelectionService.GetCurrentProject();
            vm.SetToCurrentProjectIfSupported(proj);
        }
コード例 #60
0
ファイル: PrigCommands.cs プロジェクト: urasandesu/Prig
 protected PrigCommand(PrigViewModel vm)
     : base(vm)
 {
 }