getPropuesta() public method

public getPropuesta ( Nodo n ) : Propuesta
n Nodo
return Propuesta
示例#1
0
        string doVariante(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret   = "";
            List <Propuesta> props = new List <Propuesta>();
            Grupo            g     = app.getGrupo(grupo);

            lock (g)
            {
                //preparo propuestas de nodos ancestros
                Arbol       a    = g.arbol;
                List <Nodo> path = a.getPath(id);
                Modelo      m    = g.organizacion.getModeloDocumento(modeloID);
                g.ts = DateTime.Now;
                foreach (Nodo n in path)
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (n.nivel > 0 && op != null)
                    {
                        props.Add(op);
                    }
                }

                //marco la propuesta de id como prevista
                props[0]        = props[0].clone(); //nueva propuesta
                props[0].email  = email;
                props[0].nodoID = 0;                //nodoID=0 determina propuesta prevista, porque esta propuesta aun no tiene nodo

                //muestro documento
                ret = m.toHTML(props, g, email, width, Modelo.eModo.editar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
示例#2
0
        string doComentar(int id, string grupo, string email, string comentario, bool objecion)
        {
            string ret = "";
            Grupo  g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                Propuesta p = a.getPropuesta(id);
                if (comentario != "")
                {
                    Comentario c = new Comentario();
                    c.email    = email;
                    c.texto    = Server.HtmlEncode(comentario);
                    c.objecion = objecion;
                    p.comentarios.Add(c);

                    if (objecion)
                    {
                        Nodo n = a.getNodo(id);
                        n.objecion = true;
                    }
                }
                //retorno el nuevo html de todos los comentarios de ese nodo
                Modelo m = g.organizacion.getModeloDocumento(p.modeloID);
                ret = m.toHTMLComentarios(p.nivel, p, g, email, 330, true);
            }

            return(ret);
        }
示例#3
0
        private List <Propuesta> prepararDocumento(Grupo g, string email, string modeloID, int id, HttpRequest req)
        {
            //preparo propuestas de nodos ancestros
            List <Propuesta> props = new List <Propuesta>();
            Arbol            a     = g.arbol;
            List <Nodo>      path  = a.getPath(id);
            Modelo           m     = g.organizacion.getModeloDocumento(modeloID);

            g.ts = DateTime.Now;
            foreach (Nodo n in path)
            {
                Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                if (n.nivel > 0 && op != null)
                {
                    props.Add(op);
                }
            }

            //agrego las propuestas de prevista
            List <Propuesta> previstaProps = new List <Propuesta>();

            foreach (string reqID in req.Form.AllKeys)
            {
                if (reqID != null && m.isVariable(reqID) && req[reqID] != "")
                {
                    //este valor me lo guardo en la prpuesta para ese nivel
                    Variable v     = m.getVariable(reqID);
                    bool     found = false;
                    foreach (Propuesta p in previstaProps)
                    {
                        if (v.nivel == p.nivel)
                        {
                            p.bag.Add(reqID, m.parse(reqID, req[reqID]));
                            found = true;
                        }
                    }
                    if (!found)
                    {
                        Propuesta p = new Propuesta();
                        p.email    = email;
                        p.modeloID = m.id;
                        p.nivel    = v.nivel;
                        //p.niveles = m.niveles; los niveles se completan luego desde el modelo de documeto por si cambia con alguna condicion propia
                        //p.nodoID = id; nodoID=0 determina propuesta prevista, porque esta propuesta aun no tiene nodo
                        p.bag.Add(reqID, m.parse(reqID, Server.HtmlEncode(req[reqID])));

                        previstaProps.Add(p);
                        props.Add(p);
                    }
                }
            }

            return(props);
        }
示例#4
0
        string HTMLPropuesta(int id, string grupo, string email, int width)
        {
            string           ret = "";
            List <Propuesta> l   = new List <Propuesta>();
            Grupo            g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                Propuesta p = a.getPropuesta(id);
                if (p != null)
                {
                    Modelo m = g.organizacion.getModeloDocumento(p.modeloID);
                    ret = m.toHTML(p, g, email, width, Modelo.eModo.ver);
                }
            }
            return(ret);
        }
示例#5
0
        string HTMLDocumento(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret = "";
            List <Propuesta> l   = new List <Propuesta>();
            Grupo            g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                foreach (Nodo n in a.getPath(id))
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (op != null)
                    {
                        l.Add(op);
                    }
                }
                Modelo m = g.organizacion.getModeloDocumento(modeloID);
                ret = m.toHTML(l, g, email, width, Modelo.eModo.editar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
示例#6
0
        string doRevisar(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret   = "";
            List <Propuesta> props = new List <Propuesta>();
            Grupo            g     = app.getGrupo(grupo);
            Modelo           m     = g.organizacion.getModeloDocumento(modeloID);

            lock (g)
            {
                //preparo propuestas de nodos ancestros
                Arbol       a    = g.arbol;
                List <Nodo> path = a.getPath(id);
                g.ts = DateTime.Now;
                foreach (Nodo n in path)
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (n.nivel > 0 && op != null)
                    {
                        props.Add(op);
                    }
                }

                //agrego las propuestas de prevista
                Usuario u = g.getUsuario(email);
                if (u.prevista != null)
                {
                    foreach (Propuesta p in u.prevista.propuestas)
                    {
                        props.Add(p);
                    }
                }

                //genro revision
                ret = m.toHTML(props, g, email, width, Modelo.eModo.revisar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }