void verifyCantidadFlores() { //verifico cantidad de flores lock (app.grupos) { foreach (Grupo g in app.grupos) { lock (g) { Arbol a = g.arbol; foreach (Usuario u in g.usuarios) { //agrego si faltan for (int q = u.flores.Count; q < a.cantidadFlores; q++) { u.flores.Add(new Flor()); } //quito si sobran while (u.flores.Count > a.cantidadFlores) { Flor f = u.flores[u.flores.Count - 1]; //quito desde la ultima que quizas no esta en uso if (f.id != 0) { a.quitarFlor(a.getNodo(f.id), u); } u.flores.RemoveAt(u.flores.Count - 1); } } } } } }
string doToggleFlor(string email, int id, float x, string grupo) { string ret = ""; Grupo g = app.getGrupo(grupo); lock (g) { //verifico que el usuario tiene una flor en ese nodo Arbol a = g.arbol; g.ts = DateTime.Now; Usuario u = g.getUsuarioHabilitado(email); Flor f = u.getFlor(id); List <Nodo> pathn = a.getPath(id); if (pathn == null) { throw new appException(Tools.tr("Seleccione un nodo", g.idioma)); } else { Nodo n = pathn[0]; if (f == null) { n.x = x; //no tiene flor en el nodo, la agrego a.asignarflor(u, n); //devuelvo el arbolPersonal ret = Tools.toJson(a.getArbolPersonal(email)); } else { //tiene flor, la quito a.quitarFlor(n, u); //devuelvo el arbolPersonal ret = Tools.toJson(a.getArbolPersonal(email)); } } } return(ret); }