public void AddCommand(string cmdName, SyncUpdateCmdBase syncCmd)
        {
            if (null == syncCmd)
            {
                return;
            }

            if (!m_commands.ContainsKey(cmdName))
            {
                m_commands.Add(cmdName, syncCmd);
            }
        }
        private void ParseCommandSetting(
            CustomSetting setting,
            bool neglectOrphanedSetting)
        {
            string key   = setting.SettingKey;
            string value = setting.SettingValue;

            if (key.Equals(ContextSyncOp))
            {
                // found new ContextSyncOp
                string cmdName = ExtractCommandName(value);
                string cmd     = ExtractCmmand(value);

                if (string.IsNullOrEmpty(cmdName) ||
                    string.IsNullOrEmpty(cmd))
                {
                    return;
                }

                SyncUpdateCmdBase syncCmd = CreateCommand(cmd);
                AddCommand(cmdName, syncCmd);
            }
            else if (key.EndsWith(ParamDuplicateSearchPath))
            {
                string cmdName = ExtractCommandName(key);
                if (string.IsNullOrEmpty(cmdName))
                {
                    return;
                }

                if (m_commands.ContainsKey(cmdName))
                {
                    m_commands[cmdName].AddParam(ParamDuplicateSearchPath, value);
                }
                else if (!neglectOrphanedSetting)
                {
                    m_orphanedSettings.Add(setting);
                }
            }
            else if (key.EndsWith(ParamSearchPath))
            {
                string cmdName = ExtractCommandName(key);
                if (string.IsNullOrEmpty(cmdName))
                {
                    return;
                }

                if (m_commands.ContainsKey(cmdName))
                {
                    m_commands[cmdName].AddParam(ParamSearchPath, value);
                }
                else if (!neglectOrphanedSetting)
                {
                    m_orphanedSettings.Add(setting);
                }
            }
            else if (key.EndsWith(ParamNewNodeContent))
            {
                string cmdName = ExtractCommandName(key);
                if (string.IsNullOrEmpty(cmdName))
                {
                    return;
                }

                if (m_commands.ContainsKey(cmdName))
                {
                    m_commands[cmdName].AddParam(ParamNewNodeContent, value);
                }
                else if (!neglectOrphanedSetting)
                {
                    m_orphanedSettings.Add(setting);
                }
            }
        }