public string toJsonCompleto() { arbol.grupo = null; //luego lo recupero queso.grupo = null; //luego lo recupero List <Type> tipos = new List <Type>(); foreach (Modelo m in organizacion.getModelosDocumento()) { tipos.Add(m.GetType()); } foreach (ModeloEvaluacion m in organizacion.getModelosEvaluacion()) { tipos.Add(m.GetType()); } foreach (Organizacion m in Organizacion.getOrganizaciones()) { tipos.Add(m.GetType()); } tipos.Add(new plataforma.Accion().GetType()); tipos.Add(new plataforma.Evento().GetType()); string json = Tools.toJson(this, tipos); //restauro al padre arbol.grupo = this; queso.grupo = this; return(json); }
public Grupo loadGrupo(string nombre) { string jsonpath = server.MapPath("grupos/" + nombre + "/" + nombre + ".json"); if (System.IO.File.Exists(jsonpath)) { Grupo ret; System.IO.StreamReader fs = new System.IO.StreamReader(jsonpath, System.Text.Encoding.UTF8); //System.IO.StreamReader fs = System.IO.File.OpenText(jsonpath); string s = fs.ReadToEnd(); fs.Close(); List <Type> tipos = new List <Type>(); tipos.Add(typeof(Arbol)); tipos.Add(typeof(Usuario)); tipos.Add(typeof(Nodo)); tipos.Add(typeof(Comentario)); tipos.Add(typeof(Variable)); tipos.Add(typeof(Hijo)); //tipos foreach (Organizacion org in Organizacion.getOrganizaciones()) { tipos.Add(org.GetType()); //modelos de documento foreach (Modelo mod in org.getModelosDocumento()) { tipos.Add(mod.GetType()); } //modelos de evaluacion foreach (ModeloEvaluacion mod in org.getModelosEvaluacion()) { tipos.Add(mod.GetType()); } //otros objetos foreach (object mod in org.getSeriealizableObjects()) { tipos.Add(mod.GetType()); } } ret = Tools.fromJson <Grupo>(s, tipos); ret.path = server.MapPath("grupos/" + nombre); try { ret.URL = request.UrlReferrer.AbsoluteUri.Substring(0, request.UrlReferrer.AbsoluteUri.LastIndexOf("/")); } catch (Exception) { } //modelos viejos if (ret.arbol == null) { ret.arbol = new Arbol(); } //actualizo modelos ret.arbol.grupo = ret; //padre del arbol, referencia ciclica, no se puede serializar ret.queso.grupo = ret; //padre del queso, referencia ciclica, no se puede serializar addLog("loadGrupo(): [" + ret.nombre + "] leido de disco"); return(ret); } else { throw new appException("El grupo no existe"); } }