/// <summary> /// Método para crear listas desplegables desde una paramétrica de Bizagi /// </summary> /// <param name="tabla">Nombre de tabla paramétrica</param> /// <param name="campoVisual">Campo que se va a mostrar como opción</param> /// <returns></returns> public static string ListarParametrica(string tabla, string campoVisual) { string lista = string.Empty; try { // XML Búsqueda string xmlGetEntities = @" <BizAgiWSParam> <EntityData> <EntityName>" + tabla + @"</EntityName> <Filters> <![CDATA[dsbl" + tabla + @" = " + false + @"]]> </Filters> </EntityData> </BizAgiWSParam> "; // Abrir conexión a servicio web using (EntityManagerSOASoapClient entityManager = new EntityManagerSOASoapClient()) { // Buscar en Bizagi string respuesta = entityManager.getEntitiesAsString(xmlGetEntities); // Convertir a XML XmlDocument doc = new XmlDocument(); doc.LoadXml(respuesta); // Recorrer los resultados foreach (XmlNode item in doc.SelectNodes("/BizAgiWSResponse/Entities/" + tabla)) { // Obtener campos string id = item.Attributes["key"].Value; string campo = item.SelectSingleNode(campoVisual).InnerText; // Crear opción lista += "<option value='" + id + @"'>" + campo + @"</option>"; } } } catch (Exception ex) { EscribirLog("Util", "listarParametricas", ex.Message); } return(lista); }
// // GET: /Casos/Resumen/NroCaso public ActionResult Resumen(int id) { try { #region XML Búsqueda string xmlBusqueda = @" <BizAgiWSParam> <CaseInfo> <CaseNumber>" + id + @"</CaseNumber> </CaseInfo> <XPaths> <XPath XPath=""AnalisisDeRecursos.Usuariocreador.fullName""/> <XPath XPath=""AnalisisDeRecursos.Usuariocreador.contactEmail""/> <XPath XPath=""AnalisisDeRecursos.Fechadecreacion""/> <XPath XPath=""AnalisisDeRecursos.Documento""/> <XPath XPath=""AnalisisDeRecursos.RecursosInvolucrados.Nombre""/> <XPath XPath=""AnalisisDeRecursos.RecursosInvolucrados.Cantidad""/> <XPath XPath=""AnalisisDeRecursos.RecursosInvolucrados.Unidad.NombreUnidad""/> </XPaths> </BizAgiWSParam> "; xmlBusqueda = xmlBusqueda.Replace("\n", ""); xmlBusqueda = xmlBusqueda.Replace("\t", ""); xmlBusqueda = xmlBusqueda.Replace("\r", ""); Util.EscribirLog("Busqueda", "XML Forma de resumen: Búsqueda", xmlBusqueda); #endregion XmlDocument doc = new XmlDocument(); string respuestaBusqueda = string.Empty; using (EntityManagerSOASoapClient entityManager = new EntityManagerSOASoapClient()) { respuestaBusqueda = entityManager.getCaseDataUsingXPathsAsString(xmlBusqueda); Util.EscribirLog("Busqueda", "XML Forma de resumen: Respuesta búsqueda", xmlBusqueda); } // Convertir respuesta a XML doc.LoadXml(respuestaBusqueda); // Seleccionar campos string txtNombreSolicitante = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Usuariocreador.fullName']").InnerText; string txtCorreoSolicitante = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Usuariocreador.contactEmail']").InnerText; string txtFechaCreacion = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Fechadecreacion']").InnerText; string documentoBase64 = string.Empty; string documentoNombre = string.Empty; bool tieneArchivo = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Documento']/Items/Item") != null; if (tieneArchivo) { documentoBase64 = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Documento']/Items/Item").InnerText; documentoNombre = doc.SelectSingleNode("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.Documento']/Items/Item").Attributes["FileName"].InnerText; } XmlNodeList recursosNombre = doc.SelectNodes("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.RecursosInvolucrados.Nombre']/Items/Item"); XmlNodeList recursosCantidad = doc.SelectNodes("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.RecursosInvolucrados.Cantidad']/Items/Item"); XmlNodeList recursosUnidad = doc.SelectNodes("/BizAgiWSResponse/XPath[@XPath='AnalisisDeRecursos.RecursosInvolucrados.Unidad.NombreUnidad']/Items/Item"); // Armar tabla string tabla = string.Empty; for (int i = 0; i < recursosNombre.Count; i++) { int nroFila = i + 1; tabla += @" <tr id='row" + nroFila + @"'> <td> <input type='text' value='" + recursosNombre[i].InnerText + @"' name='txtNombreRecurso" + nroFila + @"' id='txtNombreRecurso" + nroFila + @"' placeholder='Nombre' class='form-control' readOnly='readOnly' /> </td> <td> <input type='text' value='" + recursosUnidad[i].InnerText + @"' name='txtUnidadRecurso" + nroFila + @"' id='txtUnidadRecurso" + nroFila + @"' placeholder='Unidad' class='form-control' readOnly='readOnly' /> </td> <td> <input type='text' value='" + recursosCantidad[i].InnerText + @"' name='txtCantidadRecurso" + nroFila + @"' id='txtCantidadRecurso" + nroFila + @"' placeholder='Cantidad' class='form-control' readOnly='readOnly' /> </td> </tr> "; } tabla = tabla.Replace("\n", ""); tabla = tabla.Replace("\t", ""); tabla = tabla.Replace("\r", ""); #region Cargar campos ViewData["txtNroCaso"] = id; ViewData["txtNombreSolicitante"] = txtNombreSolicitante; ViewData["txtCorreoSolicitante"] = txtCorreoSolicitante; ViewData["txtFechaCreacion"] = txtFechaCreacion; ViewData["txtTabla"] = tabla; if (tieneArchivo) { ViewData["txtDocumento"] = @" <a download='" + documentoNombre + @"' href='data:application/octet-stream;charset=utf-16le;base64," + documentoBase64 + @"' class='btn btn-primary btn-md'> <span class='glyphicon glyphicon-save'></span> Descargar " + documentoNombre + @" </a> "; } #endregion } catch (Exception ex) { Util.EscribirLog("Creacion", "Error Creación", ex.Message); return(RedirectToAction("Creacion", new { estado = 0 })); } return(View()); }