public void ExecuteOption(option o) { 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 } if (axn != null) { axn.Action = _a; axn.Execute(); // execute for queueing } } }