mCleaner.Logics.Commands.CommandLogic_Winreg.DeleteEntry C# (CSharp) Method

DeleteEntry() private method

private DeleteEntry ( bool delete_entries = false, string regex = null ) : void
delete_entries bool
regex string
return void
        void DeleteEntry(bool delete_entries = false, string regex = null)
        {
            string reg_path = Action.path;
            string reg_root = reg_path.Substring(0, reg_path.IndexOf('\\'));
            string reg_subkey = reg_path.Substring(reg_path.IndexOf('\\') + 1, reg_path.Length - reg_root.Length - 1);
            string reg_entry = Action.name;

            if (delete_entries)
            {
                Dictionary<string, string> dic = RegistryHelper.I.GetNameValues(reg_root, reg_subkey);

                foreach (string key in dic.Keys)
                {
                    string val = dic[key];

                    if (RegistryHelper.I.IsNameExists(reg_root, reg_subkey, key))
                    {
                        Worker.I.EnqueTTD(new Model_ThingsToDelete()
                        {
                            reg_root = reg_root,
                            reg_name = key,
                            reg_subkey = reg_subkey,
                            reg_name_val = val,

                            FullPathName = reg_root + "\\" + reg_subkey + "\\" + key,

                            IsWhitelisted = false,
                            OverWrite = false,
                            WhatKind = THINGS_TO_DELETE.registry_name,
                            command = COMMANDS.winreg,
                            search = SEARCH.winreg_delete_entries,
                            level = Action.parent_option.level,
                            cleaner_name = Action.parent_option.label
                        });
                    }
                }
            }
            else
            {
                //Debug.WriteLine("Deleting " + reg_path);
                //RegistryHelper.I.DeleteEntries(reg_root, reg_subkey);

                if (RegistryHelper.I.IsSubkeyExists(reg_root, reg_subkey))
                {
                    // enqueue registry for deletion
                    Worker.I.EnqueTTD(new Model_ThingsToDelete()
                    {
                        reg_root = reg_root,
                        reg_name = reg_entry,
                        reg_subkey = reg_subkey,

                        FullPathName = reg_entry == null ?
                                    reg_root + "\\" + reg_subkey :
                                    reg_root + "\\" + reg_subkey + "\\" + reg_entry,

                        IsWhitelisted = false,
                        OverWrite = false,
                        WhatKind = THINGS_TO_DELETE.registry_key,
                        command = COMMANDS.winreg,
                        search = SEARCH.none,
                        level = Action.parent_option.level,
                        cleaner_name = Action.parent_option.label
                    });
                }
            }
        }