private Paquete_Lup analizarPaqueteLup(ParseTreeNode raiz)//toma la raiz del arbol generado y retorna un paquete lup procesado para que sea utilizado por los demas interpretes { Paquete_Lup paquete_Lup = new Paquete_Lup(); switch (raiz.ToString()) { case "ETIQUETA_LOGIN": //creamos el paquete lup para el login que es del tipo 1 paquete_Lup.tipo = 1; paquete_Lup.data.Add("usuario", raiz.ChildNodes.ElementAt(0)); //guardamos el nodo que contiene la informacion del usuario paquete_Lup.data.Add("password", raiz.ChildNodes.ElementAt(1)); //guardamos el nodo que contiene la informacion del password break; case "ETIQUETA_LOGOUT": //creamos el paquete lup para el logout que es del tipo 2 paquete_Lup.tipo = 2; paquete_Lup.data.Add("usuario", raiz.ChildNodes.ElementAt(0)); //guardamos el nodo que contiene la informacion del usuario break; case "ETIQUETA_QUERY": //creamos el paquete lup para el query que es del tipo 3 paquete_Lup.tipo = 3; paquete_Lup.data.Add("usuario", raiz.ChildNodes.ElementAt(0)); //guardamos el nodo que contiene la informacion del usuario paquete_Lup.data.Add("query", raiz.ChildNodes.ElementAt(1)); //guardamos el nodo que contiene la informacion del query break; case "ETIQUETA_STRUCT": //creamos el paquete lup para el struct que es del tipo 4 paquete_Lup.tipo = 4; paquete_Lup.data.Add("usuario", raiz.ChildNodes.ElementAt(0)); //guardamos el nodo que contiene la informacion del usuario break; } return(paquete_Lup); }
// POST: api/Consulta public string Post([FromBody] Paquete_Lup paquete_lup) { if (paquete_lup is null) { return("sin contenido"); } Paquete_Lup paquete_procesado = interprete_Lup.interpretar(paquete_lup.contenido + "$"); //interpretamos el contenido que envia el cliente para obtener un paquete procesado con la informacion util para el interprete CQL if (paquete_procesado != null) //si el paquete no es nulo, entonces sabemos que la salida sera un paquete tipo 3 { return("contenido valido - se produjo un paquete del tipo " + paquete_procesado.tipo); //mandar al interprete CQL } return("contenido invalido"); }