private static string ReadCategory(XmlNode node, Category parent) { if (node.Name == "Category") { string name = NodeGetString(node, "name"); string visiblename = NodeGetString(node, "visiblename"); string code = NodeGetString(node, "code"); // Category parent = (Category) NodeGetObject(node, "parentcode", categories); // if (parent == null) // parent = (Category) NodeGetObject(node, "category", categories); Template t = (Template) NodeGetObject(node, "template", templates); Role r = (Role) NodeGetObject(node, "role", roles); // string ayuda = NodeGetString(node, "ayuda"); Category c = new Category (); if (name != "" && visiblename == "") visiblename = name; if (name == "" && visiblename != "") name = visiblename; c.Name = name; c.Description = visiblename; c.Code = code; if (parent != null) c.Parent = parent; c.Template = t; c.AnonRole = r; //c.Information = ayuda; c.Save(); System.Console.WriteLine ("Categoria: "+ name); c.AclSet = NodeGetObjectSet(node, "Acl", acls); c.Save(); categories[name] = c; if (categories[code] == null) categories[code] = c; else System.Console.WriteLine("Hay otra categorÃa con el mismo CODE ({0})", c.Description); foreach (XmlNode n in node.ChildNodes) { if (n.Name == "Category") ReadCategory(n, c); else { if (n.Name == "Content") ReadContent(n, c); } } } return null; }