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