示例#1
0
        /// <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);
        }
示例#2
0
        //
        // 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());
        }