// // GET: /Util/ /// <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> "; //Escribir log CSV EscribirLog("Listar motivo/submotivo", "ListarParametrica", xmlGetEntities); //Fin CSV // Abrir conexión a servicio web EntityManager.EntityManagerSOASoapClient servicioQuery = new EntityManager.EntityManagerSOASoapClient(); // Buscar en Bizagi string respuesta = servicioQuery.getEntitiesAsString(xmlGetEntities); //Escribir log CSV EscribirLog("Respuesta", "ListarParametrica", respuesta); //Fin CSV // 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>"; } //Escribir log CSV EscribirLog("Lista opciones generada", "ListarParametrica", lista); //Fin CSV } catch (Exception ex) { //Escribir log CSV EscribirLog("ERROR", "ListarParametrica", ex.Message); //Fin CSV } return(lista); }
// // GET: /Home/ public ActionResult Index() { string respuestaCaso = string.Empty; //string datosJSON = string.Empty; try { ////Obtener ultimo parametro de la url de la página que será el link string hola = "https://10.2.0.230/CreacionProveedor/PMRE45LNMVZG6ZDFINQXG3ZCHIRCANJTEARCYITJMRBWC43FEI5CEIBVGMQCELBCMR2XEYLDNFXW4TDJNZVSEORCEAYTAIBCFQRGMZLDNBQUOZLOMVZGCY3JN5XCEORCEBKHKZJAJ5RXIIBRGUQDAMB2GAYDUMBQEBKVIQZNGQQDEMBRHEQCELBCNFSFG33MNFRWS5DVMQRDUIRAGUZSAIT5"; //string[] url = Request.Url.Query.Split('/'); string[] url = hola.Split('/'); string linkEncriptado = url.Last(); ////Descifrar link Base32.Net4.Encoder enco = new Base32.Net4.Encoder(); string decodificado = enco.DecodeFromBase32String(linkEncriptado); //datosJSON = JsonConvert.SerializeObject(decodificado); var datosJSON = JObject.Parse(decodificado); var numeroCaso = datosJSON["NumerodeCaso"].ToString(); if (numeroCaso != null && numeroCaso != "") { numeroCaso = numeroCaso.Trim(); System.Web.HttpContext.Current.Session["NroCaso"] = numeroCaso; //Escribir log CSV UtilController.EscribirLog("Numero de caso obtenido", "Index", numeroCaso); //Fin CSV ////Obtener informacion del idCase, numero de caso (y id Entidad de la coleccion en caso de ser corrección) // XML Búsqueda string xmlGetEntities = @" <BizAgiWSParam> <EntityData> <EntityName>M_ProcesoCreacionDeProve</EntityName> <Filters> <![CDATA[NumerodeCaso = '" + numeroCaso + @"']]> </Filters> </EntityData> </BizAgiWSParam>"; //Escribir log CSV UtilController.EscribirLog("Consultar numero de caso", "Index", xmlGetEntities); //Fin CSV // Abrir conexión a servicio web EntityManager.EntityManagerSOASoapClient servicioQuery = new EntityManager.EntityManagerSOASoapClient(); respuestaCaso = servicioQuery.getEntitiesAsString(xmlGetEntities); respuestaCaso = respuestaCaso.Replace("\n", ""); respuestaCaso = respuestaCaso.Replace("\t", ""); respuestaCaso = respuestaCaso.Replace("\r", ""); //Escribir log CSV UtilController.EscribirLog("respuestaCaso", "Index", respuestaCaso); //Fin CSV //Transformar respuesta STRING de Bizagi a XML para poder recorrer los nodos XmlDocument doc = new XmlDocument(); doc.LoadXml(respuestaCaso); var idEntidadSolicitud = ""; var fechaGeneracionLink = ""; var duracionLink = ""; DateTime fechaActual = DateTime.Today; string completadoWeb = ""; string idioma = ""; //Guardar "fecha generacion link", "duracion de link", idEntidadSolicitud, numeroCaso y declarar la fecha actual if (doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/Fechageneracionlink").InnerText != null) { fechaGeneracionLink = doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/Fechageneracionlink").InnerText; } if (doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/Diasduracionlink").InnerText != null) { duracionLink = doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/Diasduracionlink").InnerText; } if (doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/CompletadoWeb").InnerText != null) { completadoWeb = doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/CompletadoWeb").InnerText; } if (doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/SolicitudCreaciondeProve.Idioma.Idioma").InnerText != null) { idioma = doc.SelectSingleNode("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/SolicitudCreaciondeProve.Idioma.Idioma").InnerText; } foreach (XmlNode item in doc.SelectNodes("/BizAgiWSResponse/Entities/M_ProcesoCreacionDeProve/SolicitudCreaciondeProve")) { // Obtener campos idEntidadSolicitud = item.Attributes["key"].Value; Convert.ToInt32(idEntidadSolicitud); } //Restar la fecha actual con la fecha generacion de link y los dias que de resultado, comparar con duracion de link, asi determinar si es válido o no. TimeSpan resultadoFechas = fechaActual.Subtract(Convert.ToDateTime(fechaGeneracionLink)); int diasDiferencia = resultadoFechas.Days; if (completadoWeb != "True") { //Paginas español. CREAR CONDICION EVALUANDO CAMPO DE IDIOMA ELEGIDO if (idioma == "Español") { if (Convert.ToInt32(duracionLink) >= diasDiferencia) { //mostrar index System.Web.HttpContext.Current.Session["UrlValida"] = "1"; ViewData["UrlValida"] = System.Web.HttpContext.Current.Session["UrlValida"]; } else { throw new Exception("Página caducada"); } } else if (idioma == "Ingles") { if (Convert.ToInt32(duracionLink) >= diasDiferencia) { //mostrar index System.Web.HttpContext.Current.Session["UrlValida"] = "1"; ViewData["UrlValida"] = System.Web.HttpContext.Current.Session["UrlValida"]; } else { throw new Exception("Página caducada"); } } //Paginas ingles } else { throw new Exception("Página ya fue completada. Se redirecciona a página caducada"); } //Cargar tabla de tipo de proveedor string listaTipoProveedor = UtilController.ListarParametrica("P_Moneda", "Moneda"); ViewData["txtMoneda"] = listaTipoProveedor; } } catch (Exception ex) { return(RedirectToAction("Caducado", "Home")); } //ViewData["UrlValida"] = "1"; return(View()); }