public String SolveQuest(HttpContext context)
        {
            context.Request.InputStream.Position = 0;
            var jsonString = String.Empty;

            using (var inputStream = new StreamReader(context.Request.InputStream))
            {
                jsonString = inputStream.ReadToEnd();
            }

            JavaScriptSerializer        deserializer = new JavaScriptSerializer();
            Dictionary <String, Object> contenido    = deserializer.Deserialize <Dictionary <String, Object> >(jsonString);
            String accion = contenido["accion"].ToString();

            if (accion == "paridad")
            {
                int curmone;
                if (!int.TryParse(contenido["pointer"].ToString(), out curmone))
                {
                    pageComm.Add("fail", "Moneda no identificada:" + contenido["pointer"].ToString() + ".");
                }
                else
                {
                    DateTime fecha;
                    if (!DateTime.TryParse(contenido["fecha"].ToString(), out fecha))
                    {
                        pageComm.Add("fail", "Fecha en Malas Condiciones: " + contenido["fecha"].ToString() + ".");
                    }
                    else
                    {
                        Moneda mone   = new Moneda(dataConnectionString);
                        Double parity = mone.ParidadMoneda(curmone, fecha, 1);
                        pageComm.Add("paridad", parity.ToString(CultureInfo.CreateSpecificCulture("en-US")));
                    }
                }
                return(Modelos.Library.JsonInform.PageCommentsToJson(pageComm));
            }
            else if (accion == "relacionlimitecotizacion")
            {
                short    success     = 0;
                String[] conte       = Tools.CryptoTools.Decrypt(contenido["pointer"].ToString()).Split('\t');
                int      codigo      = int.Parse(conte[1]);
                int      correl      = int.Parse(conte[2]);
                String   numPersona  = conte[3];
                Decimal  montoAplica = Decimal.Parse(conte[4],
                                                     NumberStyles.Number, new System.Globalization.CultureInfo("en-US"));
                String   tipOper = conte[5];
                DateTime fecha   = DateTime.Today;
                Dictionary <String, Object> answer = new Dictionary <string, object>();
                answer.Add("fecha", fecha.ToShortDateString());
                answer.Add("targkey", contenido["pointer"].ToString());
                if (codigo == 2)
                {
                    answer.Add("nombre", "Límites Capítulo IIIB5");
                    answer.Add("moneda", "DOLAR AMERICANO");
                }
                else
                {
                    Limite limite = new Limite(dataConnectionString);
                    if (limite.Obtener(codigo, correl, fecha) == 0)
                    {
                        answer.Add("nombre", limite.Nombre);
                        Moneda mon = new Moneda(dataConnectionString);
                        if (mon.Obtener(limite.Moneda) == 0)
                        {
                            answer.Add("moneda", mon.Nombre);
                        }
                    }
                }

                RelacionLimiteCotizacion rela = new RelacionLimiteCotizacion(dataConnectionString);
                DataTable dRel = rela.GetList(ref success, codigo, correl);
                if (success == 0)
                {
                    DataTable infor = rela.PackInfo(dRel, tipOper, numPersona, montoAplica, true);


                    answer.Add("lista", infor);
                }
                else if (success == 3)
                {
                    answer.Add("vacio", "No Existen Cotizaciones para este Límite");
                }
                String result = JsonConvert.SerializeObject(answer);
                return(result);
            }
            else if (accion == "listaclientes")
            {
                short  success    = 0;
                String numPersona = contenido["numcli"].ToString();
                String nomPersona = contenido["nomcli"].ToString();
                short  rowsppage  = 14;
                short  currpage   = Convert.ToInt16(contenido["pointer"].ToString() == string.Empty ? "0" : contenido["pointer"].ToString());
                if (currpage == 0)
                {
                    currpage = 1;
                }
                Persona               per    = new Persona(dataConnectionString);
                DataTable             dt     = per.GetList(ref success, 0);
                string                filter = (nomPersona != "")? "nom_prsna_etcdo like '%" + nomPersona + "%'": "";
                string                sort   = "nom_prsna_etcdo ASC";
                IEnumerable <DataRow> qry    = dt.Select(filter, sort);
                short     rowstotal          = (short)qry.ToList().Count();
                DataTable ndt = new DataTable("clientes");
                ndt = dt.Clone();
                int toma  = rowsppage;
                int eskip = (rowsppage) * (currpage - 1);
                if (eskip > rowstotal)
                {
                    currpage--; eskip = (rowsppage) * (currpage - 1);
                }
                if (qry.Count() > 0)
                {
                    ndt = qry.Skip(eskip).Take(toma).CopyToDataTable <DataRow>();
                }
                DataTable pdt = new DataTable("paginacion");
                pdt.Columns.Add("actual", typeof(short));
                pdt.Columns.Add("total", typeof(short));
                pdt.Columns.Add("totalpages", typeof(short));
                int totpages = rowstotal / rowsppage;
                if (totpages * rowsppage < rowstotal)
                {
                    totpages++;
                }
                pdt.Rows.Add(currpage, rowstotal, totpages);
                DataSet nds = new DataSet();
                ndt.TableName = "clientes";
                nds.Tables.Add(ndt); nds.Tables.Add(pdt);
                String result = JsonConvert.SerializeObject(nds);
                return(result);
            }
            else
            {
                pageComm.Add("fail", "Accion No Identificada: " + accion + ".");
            }
            return(Modelos.Library.JsonInform.PageCommentsToJson(pageComm));
        }
        public void RegistraSubyacente()
        {
            iView.Comanda.Value = string.Empty;
            String  ruCliente = iView.Argumento.Value;
            Persona pCliente  = new Persona(dataConnectionString);

            iView.SinLineaSuby.Text = string.Empty;

            if (0 == pCliente.Obtener(ruCliente))
            {
                iView.NroPerSuby.Text = Global.ConvertirNroRut(ruCliente);

                iView.NomSuby.Text = pCliente.NombreEstructurado;
                iView.NomSuby.Attributes.Add("data-tag", pCliente.Numero);

                //nroMatr = fCliente.NroCasaMatriz(modGlobal.ConvertirNroRut(modGlobal.gtCodigoEncontrado));
                //if (nroMatr == string.Empty)
                //{
                //    chkCargoMatrizSubyacente.CheckState = CheckState.Unchecked;
                //    chkCargoMatrizSubyacente.Visible = false;
                //    chkCargoMatrizSubyacente.Enabled = false;
                //    txCasaMatrizSuby.Text = string.Empty;
                //    txCasaMatrizSuby.Tag = string.Empty;
                //}
                //else
                //{
                //    chkCargoMatrizSubyacente.CheckState = CheckState.Checked;
                //    chkCargoMatrizSubyacente.Visible = true;
                //    chkCargoMatrizSubyacente.Enabled = false;
                //    q = fMatriz.Obtener(nroMatr);
                //    txCasaMatrizSuby.Text = fMatriz.NombreEstructurado;
                //    txCasaMatrizSuby.Tag = nroMatr;
                //}
                Pais pPais = new Pais(dataConnectionString);
                if (0 == pPais.Obtener(pCliente.CodigoPais))
                {
                    iView.PaisSuby.Text = pPais.Nombre;
                    iView.PaisSuby.Attributes.Add("data-tag", pCliente.CodigoPais.ToString());

                    Categoria pCategoria = new Categoria(dataConnectionString);
                    if (0 == pCategoria.Obtener(pPais.Desarrollo))
                    {
                        iView.CategSuby.Text = pCategoria.Nombre;
                        iView.CategSuby.Attributes.Add("data-tag", pPais.Desarrollo.ToString());
                    }
                    else
                    {
                        iView.CategSuby.Text = "Indefinida";
                        iView.CategSuby.Attributes.Add("data-tag", string.Empty);
                    }
                    iView.Nota.Checked = true;
                    //this.cboTipoOperSuby.Focus();
                }
                Limite llimLimite;
                llimLimite = new Limite(dataConnectionString);
                int liRespuesta = 0;
                liRespuesta = llimLimite.ObtenerLineaCliente(ruCliente);
                if (liRespuesta != 0)
                {
                    pageComm.Add("lineasuby", "Está por generar una Simulación para un Deudor Subyacente Nuevo o Sin Línea " + pCliente.NombreEstructurado);
                    iView.SinLineaSuby.Text = "<-sin linea";
                }
                //
            }
            else
            {
                pageComm.Add("errordatos", "Ocurrió un error al intentar obtener los datos del Deudor Subyacente.");
            }

            iView.pageContent = Modelos.Library.JsonInform.PageCommentsToJson(pageComm);
        }