internal static HistoryItem Parse(string line)
                {
                    // Get the type
                    string[] parts = line.Split('=');
                    string cp = parts[0];
                    string[] users = parts[1].Split('|');

                    HistoryItem item = new HistoryItem(cp);

                    foreach (var usingInfo in users)
                    {
                        string[] usingParts = usingInfo.Split(':');
                        string user = usingParts[0];
                        long when = 0;
                        long.TryParse(usingParts[1], out when);
                        item.AddUser(user, new DateTime(when));
                    }

                    return item;
                }
            internal void Log(ConfigurationParameter configurationParameter, Type type)
            {
                try
                {
                    HistoryItem item;
                    string key = configurationParameter.GetType().FullName;

                    if (!_history.TryGetValue(key, out item))
                    {
                        _history[key] = item = new HistoryItem(key);
                        item.AddUser(type);
                    }
                    _isModified = true;
                }
                catch
                {
                    // A exception shall not stop the server
                }
            }