public void RemoveItem(AccordionItem item)
        {
            foreach (var child in item.Items.ToArray())
                RemoveItem(child);

            item.Parent.Items.Remove(item);
            _dictionary.Remove(item.Id);
        }
 public AccordionItem AddItem(string parentId, string headline, string content, string moduleId)
 {
     var parent = _dictionary[parentId];
     var item = new AccordionItem();
     item.Headline = headline;
     item.Text = headline;
     item.Content = content;
     item.ModuleId = moduleId;
     item.Parent = parent;
     parent.Items.Add(item);
     _dictionary.Add(item.Id, item);
     return item;
 }
 internal void Insert(AccordionItem item)
 {
     _dictionary.Add(item.Id, item);
 }
 internal AccordionItem(JSONObject obj, AccordionItem parent, AccordionData data)
 {
     Id = Guid.NewGuid().ToString();
     Headline = Text = (string)obj["text"];
     Icon = "/umbraco/Images/umbraco/headings.png";
     Content = (string)obj["content"];
     ModuleId = (string)obj["moduleId"];
     Parent = parent;
     Items = new List<AccordionItem>();
     data.Insert(this);
     foreach (JSONObject childObj in ((JSONArray)obj["items"]).Values)
         Items.Add(new AccordionItem(childObj, this, data));
 }