Esempio n. 1
0
        private void LaunchEnablementSwitcher()
        {
            DriverModuleName moduleName;

            {
                string mnStr = GCTaskFilesInterface.GetNameOfModuleToDisable();
                if (string.IsNullOrEmpty(mnStr))
                {
                    Console.WriteLine("Could not get module name of driver to disable.");
                    return;
                }

                moduleName = new DriverModuleName(mnStr);
                if (this.proxy.Query.HasDriver(moduleName) == false)
                {
                    Console.WriteLine(string.Format(
                                          "Driver {0} was not found.", mnStr));
                    return;
                }

                if (this.proxy.Query.SupportsDisabling(moduleName) == false)
                {
                    Console.WriteLine(string.Format(
                                          "Driver {0} cannot be disabled.", mnStr));
                    return;
                }
            }

            this.switcher = new DriversScheduledEnablementSwitcher(
                this.proxy.Query,
                this.proxy.Manage,
                this.pendingChanges
                );

            IEnumerable <DateTime> inputSchedule
                = GCTaskFilesInterface.GetDisablementSchedule();

            if (inputSchedule == null)
            {
                return;
            }

            this.switcher.DeactivationRequested
                += (sender, ea)
                   => Console.WriteLine(string.Format(
                                            "Deactivation requested for driver '{0}'.",
                                            moduleName));

            var switcherSchedule = new DriverEnablementSchedule();

            foreach (DateTime time in inputSchedule)
            {
                switcherSchedule[time] = DriverEnablementRequest.Deactivation;
            }

            this.switcher.Disable(new DriverModuleName(moduleName),
                                  switcherSchedule);
        }
Esempio n. 2
0
        private void OnUpdatedDriversInfo()
        {
            Console.WriteLine("Update started...");

            var driversInfo = new List <DriverInfo>();

            foreach (DriverInfo driverInfo in this.follower.Info.Values)
            {
                driversInfo.Add(driverInfo);
            }

            GCTaskFilesInterface.SaveStatuses(driversInfo);

            Console.WriteLine("Update done.");
        }