public static ActionResult CaActiveSetup_RemoveHKCU(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);

                //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                var caParams = CaParameters.ExtractFromSession(session);
                registryAbstractor.DeleteHkcuKey(caParams.RegistrySubKey);
            };

            var runner = new CaRunner(session);
            return runner.RunAction(action, "CaActiveSetup_RemoveHKCU");
        }
        public static ActionResult CaActiveSetup_RemoveHKCU(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);

                //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                var caParams = CaParameters.ExtractFromSession(session);
                registryAbstractor.DeleteHkcuKey(caParams.RegistrySubKey);
            };

            var runner = new CaRunner(session);

            return(runner.RunAction(action, "CaActiveSetup_RemoveHKCU"));
        }
        public static ActionResult CaActiveSetup_SetHKCU(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);

                //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                var caParams = CaParameters.ExtractFromSession(session);
                using (RegistryKey hkcuKey = registryAbstractor.OpenOrCreateHkcuKey(caParams.RegistrySubKey))
                {
                    UpdateHkcuActiveSetupKey(hkcuKey, caParams.Version);
                }
            };

            var runner = new CaRunner(session);
            return runner.RunAction(action, "CaActiveSetup_SetHKCU");
        }
        public static ActionResult CaActiveSetup_RemoveHKLM(Session session)
        {
            Action action = () =>
                {
                    var registryAbstractor = new RegistryAbstractor(session);

                    //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                    var caParams = CaParameters.ExtractFromSession(session);
                    using (RegistryKey createHklmKey = registryAbstractor.OpenOrCreateHklmKey(caParams.RegistrySubKey))
                    {
                        UpdateActiveSetupHklmKey(createHklmKey, caParams.Default, caParams.CreateComponentId,
                                                 caParams.CreateCommand, caParams.RemoveCommand, caParams.Version, false);
                    }
                };

            var runner = new CaRunner(session);
            return runner.RunAction(action, "CaActiveSetup_RemoveHKLM");
        }
        public static ActionResult CaActiveSetup_SetHKLM(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);
                var caParams           = CaParameters.ExtractFromSession(session);

                //install the active setup that will set the OPEN key.
                using (RegistryKey hklmKey = registryAbstractor.OpenOrCreateHklmKey(caParams.RegistrySubKey))
                {
                    UpdateActiveSetupHklmKey(hklmKey, caParams.Default, caParams.CreateComponentId, caParams.CreateCommand, caParams.RemoveCommand, caParams.Version, true);
                }
            };

            var runner = new CaRunner(session);

            return(runner.RunAction(action, "CaActiveSetup_SetHKLM"));
        }
        public static ActionResult CaActiveSetup_SetHKCU(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);

                //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                var caParams = CaParameters.ExtractFromSession(session);
                using (RegistryKey hkcuKey = registryAbstractor.OpenOrCreateHkcuKey(caParams.RegistrySubKey))
                {
                    UpdateHkcuActiveSetupKey(hkcuKey, caParams.Version);
                }
            };

            var runner = new CaRunner(session);

            return(runner.RunAction(action, "CaActiveSetup_SetHKCU"));
        }
        public static ActionResult CaActiveSetup_RemoveHKLM(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);

                //Set the Active Setup ot IsInstalled = 0 and change the StubPath
                var caParams = CaParameters.ExtractFromSession(session);
                using (RegistryKey createHklmKey = registryAbstractor.OpenOrCreateHklmKey(caParams.RegistrySubKey))
                {
                    UpdateActiveSetupHklmKey(createHklmKey, caParams.Default, caParams.CreateComponentId,
                                             caParams.CreateCommand, caParams.RemoveCommand, caParams.Version, false);
                }
            };

            var runner = new CaRunner(session);

            return(runner.RunAction(action, "CaActiveSetup_RemoveHKLM"));
        }
        public static ActionResult CaActiveSetup_SetHKLM(Session session)
        {
            Action action = () =>
            {
                var registryAbstractor = new RegistryAbstractor(session);
                var caParams = CaParameters.ExtractFromSession(session);

                //install the active setup that will set the OPEN key.
                using (RegistryKey hklmKey = registryAbstractor.OpenOrCreateHklmKey(caParams.RegistrySubKey))
                {
                    UpdateActiveSetupHklmKey(hklmKey, caParams.Default, caParams.CreateComponentId, caParams.CreateCommand, caParams.RemoveCommand, caParams.Version, true);
                }
            };

            var runner = new CaRunner(session);
            return runner.RunAction(action, "CaActiveSetup_SetHKLM");
        }