//Llenado de Tabla de Detalle Componentes
        public NutanixParametros cargaDetalleComponente(int idComponente, out string sErrors)
        {
            Boolean res;
            string codError = "";

            SqlAccess cDAL = new SqlAccess(dbConn);
            DataSet dtGrilla = new DataSet();
            Dictionary<string, object> parametro = new Dictionary<string, object>();
            parametro.Add("@idcomponente", idComponente);

            res = cDAL.ConsultarDS("USP_SEL_NUTANIX_DETALLE_COMPONENTE", out dtGrilla, out codError, out sErrors, parametro);

            NutanixParametros salida = new NutanixParametros();
            foreach (DataRow row in dtGrilla.Tables[0].Rows)
            {
                salida.idCotizacion = int.Parse(row["idcotizacion"].ToString());
                salida.idProyecto = int.Parse(row["idproyecto"].ToString());
                salida.plantillaComp = row["plantilla"].ToString();
                salida.descripcionComp = row["descripcion"].ToString();
                salida.catCosto = row["categoriacosto"].ToString();
                salida.estadoComp = row["estado"].ToString();
                salida.idComponente = int.Parse(row["idcomponente"].ToString());
                salida.idAmbiente = int.Parse(row["idambiente"].ToString());
                salida.ambienteComp = row["ambiente"].ToString().Trim();
                salida.idTipo = int.Parse(row["idtipo"].ToString());
                salida.esAplicacion = row["aplicacion"].ToString();
                salida.vcoresComp = int.Parse(row["vcores"].ToString());
                salida.ramComp = int.Parse(row["ram"].ToString());
                salida.idNegocio = int.Parse(row["idnegocio"].ToString());
                salida.negocio = row["negocio"].ToString();
            }

            return salida;
        }
        //Parametrización por Componente
        public string parametrizacionComponente(NutanixEntrada nutanix,int idComponente) {
            string sErros = "", sError = "";
            string ambito = "", salida = "";
            string json = "", jsonFinal = "";
            string script = "", scriptFinal = "", base64 ="";

            NutanixFunciones nfun = new NutanixFunciones();
            NutanixParametros nparam = new NutanixParametros();
            NutanixPlantillas nplan = new NutanixPlantillas();

            nparam = nfun.cargaDetalleComponente(idComponente, out sError);

            string[] dbConfig = nutanix.charSet == null  ? new string[]{"","",""} : nutanix.charSet.Split('-');
            string charSet = dbConfig[0] != "" ? dbConfig[0] : "";
            string natcharSet = dbConfig[1] != "" ? dbConfig[1] : "";
            string blockSize = dbConfig[2] != "" ? dbConfig[2] : "";

            if (nparam.idTipo == 105)
            {
                if (nparam.idAmbiente == 22)
                {
                    ambito = "PRODUCTIVO";
                }
                else
                    ambito= "NO_PRODUCTIVO";
            }
            else
            {
                ambito = "APP";
            }

            nplan = cargaJsonNutanix(out sErros, out json, out script, ambito, nutanix.sistemaOperativo, nparam.idTipo.ToString(), nutanix.rolSet);
            scriptFinal = armarScript(nplan.plantillaScript, nutanix.dbName, charSet,natcharSet,blockSize);
            base64 = EncodeTo64SL(scriptFinal);
            jsonFinal = armarJson(nplan.plantillaJson, nutanix.sistemaOperativo, nparam.ramComp.ToString(), nparam.vcoresComp.ToString(), nutanix.vlanSec, base64);

            salida = llamadaAPICreaVM(jsonFinal);

            insertaNutanixRequest(idComponente, jsonFinal, scriptFinal, base64, out sError);
            insertaNutanixResponse(idComponente, salida, "", "PENDING", out sError);

            return salida;

        }