Esempio n. 1
0
        static void Main(string[] args)
        {
            //Worker.I.DoWork();
            Worker.I.Preview = true;
            Model_CleanerML CleanerML = new Model_CleanerML();

            XmlSerializer srlzr = new XmlSerializer(typeof(cleaner));

            FileInfo fi = new FileInfo(@"D:\Clients\oDesk\2015\Frank\mCleaner\mCleaner\mCleaner\Cleaners\freerider.xml");

            //using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(mCleaner.App.testcleaner)))
            {
                cleaner clnr = (cleaner)srlzr.Deserialize(fi.OpenText());
                CleanerML.CleanerML = clnr;

                foreach (option o in clnr.option)
                {
                    foreach (action a in o.action)
                    {
                        Console.WriteLine("Executing '{0}' command with '{1}' search parameter in '{2}' path", a.command, a.search, a.path);

                        COMMANDS cmd = (COMMANDS)StringEnum.Parse(typeof(COMMANDS), a.command);

                        iActions axn = null;

                        switch (cmd)
                        {
                            case COMMANDS.delete:
                                axn = new CommandLogic_Delete();
                                break;
                            case COMMANDS.sqlite_vacuum:
                                break;
                            case COMMANDS.truncate:
                                break;
                            case COMMANDS.winreg:
                                break;
                        }

                        if (axn != null)
                        {
                            axn.Action = a;
                            axn.Execute();
                        }
                    }
                }
            }

            Worker.I.PreviewWork();

            Console.WriteLine("done");
            Console.ReadLine();
        }
        public void EnqueueOption(option o)
        {
            string last_Log = string.Empty;

            foreach (action _a in o.action)
            {
                Console.WriteLine("Executing '{0}' action from '{3}' option in '{4}' cleaner, command with '{1}' search parameter in '{2}' path", _a.command, _a.search, _a.path, _a.parent_option.label, _a.parent_option.parent_cleaner.label);

                COMMANDS cmd = (COMMANDS)StringEnum.Parse(typeof(COMMANDS), _a.command);

                iActions axn = null;

                switch (cmd)
                {
                    case COMMANDS.delete:
                        axn = new CommandLogic_Delete();
                        break;

                    #region // special commands
                    case COMMANDS.sqlite_vacuum:
                        axn = new CommandLogic_SQLiteVacuum();
                        break;
                    case COMMANDS.truncate:
                        break;
                    case COMMANDS.winreg:
                        axn = new CommandLogic_Winreg();
                        break;
                    #endregion

                    #region // other special commands
                    case COMMANDS.json:
                        axn = new CommandLogic_JSON();
                        break;
                    case COMMANDS.ini:
                        axn = new CommandLogic_Ini();
                        break;
                    #endregion

                    #region // special commands for Google Chrome
                    case COMMANDS.chrome_autofill:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_database_db:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_favicons:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_history:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_keywords:
                        axn = new CommandLogic_Chrome();
                        break;
                    #endregion

                    #region // ClamWin commands
                    case COMMANDS.clamscan:
                        axn = new CommandLogic_Clam();
                        break;
                    #endregion

                    #region // little registry commands
                    case COMMANDS.littleregistry:
                        axn = new CommandLogic_LittleRegistryCleaner();
                        break;
                    #endregion

                    case COMMANDS.clipboard:
                        axn = new CommandLogic_Clipboard();
                        break;

                    case COMMANDS.dupchecker:
                        axn = new CommandLogic_DuplicateChecker();
                        break;
                }

                if (axn != null)
                {
                    axn.Action = _a;
                    axn.Enqueue(); // execute for queueing 
                }
            }
        }
        public void EnqueueOption(option o)
        {
            string last_Log = string.Empty;

            foreach (action _a in o.action)
            {
                if (!Worker.I.Preview) // check only when not in preview mode
                {
                    // if not in custom, check for cleaning level
                    if (!this.CleanOption_Custom)
                    {
                        #region // check cleaning level
                        int level = 3; // let it be the default
                        int curlevel = Settings.Default.CleanOption;

                        if (_a.parent_option.level == 0)
                        {
                            level = 3;
                        }
                        else
                        {
                            level = _a.parent_option.level;
                        }

                        if (level > curlevel)
                        {
                            // do not execute the cleaner when the level set is greater than
                            // what is in current setting.

                            string level_name = "Aggressive";
                            if (level == 1) level_name = "Safe";
                            else if (level == 2) level_name = "Moderate";

                            string text = string.Format("\"{0}\" cleaner skipped because it is set for {1} cleaning level", _a.parent_option.label, level_name);

                            if (last_Log != text)
                            {
                                last_Log = text;

                                this.TextLog += text;
                            }

                            continue;
                        }
                        #endregion
                    }
                }

                Console.WriteLine("Executing '{0}' action from '{3}' option in '{4}' cleaner, command with '{1}' search parameter in '{2}' path", _a.command, _a.search, _a.path, _a.parent_option.label, _a.parent_option.parent_cleaner.label);

                COMMANDS cmd = (COMMANDS)StringEnum.Parse(typeof(COMMANDS), _a.command);

                iActions axn = null;

                switch (cmd)
                {
                    case COMMANDS.delete:
                        axn = new CommandLogic_Delete();
                        break;

                    #region // special commands
                    case COMMANDS.sqlite_vacuum:
                        axn = new CommandLogic_SQLiteVacuum();
                        break;
                    case COMMANDS.truncate:
                        break;
                    case COMMANDS.winreg:
                        axn = new CommandLogic_Winreg();
                        break;
                    #endregion

                    #region // other special commands
                    case COMMANDS.json:
                        axn = new CommandLogic_JSON();
                        break;
                    case COMMANDS.ini:
                        axn = new CommandLogic_Ini();
                        break;
                    #endregion

                    #region // special commands for Google Chrome
                    case COMMANDS.chrome_autofill:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_database_db:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_favicons:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_history:
                        axn = new CommandLogic_Chrome();
                        break;
                    case COMMANDS.chrome_keywords:
                        axn = new CommandLogic_Chrome();
                        break;
                    #endregion

                    #region // ClamWin commands
                    case COMMANDS.clamscan:
                        axn = new CommandLogic_Clam();
                        break;
                    #endregion

                    #region // little registry commands
                    case COMMANDS.littleregistry:
                        axn = new CommandLogic_LittleRegistryCleaner();
                        break;
                    #endregion

                    case COMMANDS.clipboard:
                        axn = new CommandLogic_Clipboard();
                        break;

                    case COMMANDS.dupchecker:
                        axn = new CommandLogic_DuplicateChecker();
                        break;
                }

                if (axn != null)
                {
                    axn.Action = _a;
                    axn.Enqueue(); // execute for queueing 
                }
            }
        }