/*Método para modificar un diseño
        * Requiere: el id del diseño
        * Modifica: modifica la tabla de Diseno_Pruebas
        * Retorna:booleano si logra modificar el diseño
        */
        public bool modificarDiseño(EntidadDiseno nuevo, int identificador)
        {
            string consulta = "";
            bool resultado = false;
            try
            {
                if (nuevo.getTecnica == "Seleccione" && nuevo.getNivel == "Seleccione")
                {
                    consulta = "UPDATE Diseno_Pruebas SET proposito_diseno ='" + nuevo.getProposito + "', fecha = '" + nuevo.getFecha + "', procedimiento_diseno = '" + nuevo.getProcedimiento + "', ambiente_diseno = '" + nuevo.getAmbiente + "', criterios_aceptacion = '" + nuevo.getCriterio + "', tecnica = " + "null" + ", nivel = " + "null" + ", id_proyecto = '" + nuevo.getIdProyecto + "', cedula_responsable = '" + nuevo.getCedulaResponsable + "' WHERE id_diseno ='" + identificador + "';";
                    resultado = acceso.insertarDatos(consulta);
                }
                else if (nuevo.getNivel == "Seleccione")
                {
                    consulta = "UPDATE Diseno_Pruebas SET proposito_diseno ='" + nuevo.getProposito + "', fecha = '" + nuevo.getFecha + "', procedimiento_diseno = '" + nuevo.getProcedimiento + "', ambiente_diseno = '" + nuevo.getAmbiente + "', criterios_aceptacion = '" + nuevo.getCriterio + "', tecnica = '" + nuevo.getTecnica + "', nivel = " + "null" + ", id_proyecto = '" + nuevo.getIdProyecto + "', cedula_responsable = '" + nuevo.getCedulaResponsable + "' WHERE id_diseno ='" + identificador + "';";
                    resultado = acceso.insertarDatos(consulta);
                }
                else if (nuevo.getTecnica == "Seleccione")
                {
                    consulta = "UPDATE Diseno_Pruebas SET proposito_diseno ='" + nuevo.getProposito + "', fecha = '" + nuevo.getFecha + "', procedimiento_diseno = '" + nuevo.getProcedimiento + "', ambiente_diseno = '" + nuevo.getAmbiente + "', criterios_aceptacion = '" + nuevo.getCriterio + "', tecnica = " + "null" + ", nivel = '" + nuevo.getNivel + "', id_proyecto = '" + nuevo.getIdProyecto + "', cedula_responsable = '" + nuevo.getCedulaResponsable + "' WHERE id_diseno ='" + identificador + "';";
                    resultado = acceso.insertarDatos(consulta);
                }
                else
                {
                    consulta = "UPDATE Diseno_Pruebas SET proposito_diseno ='" + nuevo.getProposito + "', fecha = '" + nuevo.getFecha + "', procedimiento_diseno = '" + nuevo.getProcedimiento + "', ambiente_diseno = '" + nuevo.getAmbiente + "', criterios_aceptacion = '" + nuevo.getCriterio + "', tecnica = '" + nuevo.getTecnica + "', nivel = '" + nuevo.getNivel + "', id_proyecto = '" + nuevo.getIdProyecto + "', cedula_responsable = '" + nuevo.getCedulaResponsable + "' WHERE id_diseno ='" + identificador + "';";
                    resultado = acceso.insertarDatos(consulta);
                }
            }
            catch (SqlException e)
            {
                return false;
            }
            return resultado;

        }
        /*Método para insertar un diseño
        * Requiere: la entidad de diseño
        * Modifica: modifica la tabla Diseno_Pruebas
        * Retorna:booleano si logra insertar el diseño
        */
        public bool insertarDiseno(EntidadDiseno nuevo)
        {
            try
            {
                if (nuevo.getTecnica == "Seleccione" && nuevo.getNivel == "Seleccione")
                {

                    string insercion = "INSERT INTO Diseno_Pruebas (proposito_diseno, fecha, procedimiento_diseno, ambiente_diseno, criterios_aceptacion, tecnica, nivel, id_proyecto, cedula_responsable) VALUES ('" + nuevo.getProposito + "', '" + nuevo.getFecha + "', '" + nuevo.getProcedimiento + "','" + nuevo.getAmbiente + "', '" + nuevo.getCriterio + "', null, null, '" + nuevo.getIdProyecto + "', '" + nuevo.getCedulaResponsable + "')";
                    return acceso.insertarDatos(insercion);
                }

                else if (nuevo.getNivel == "Seleccione")
                {
                    string insercion = "INSERT INTO Diseno_Pruebas (proposito_diseno, fecha, procedimiento_diseno, ambiente_diseno, criterios_aceptacion, tecnica, nivel, id_proyecto, cedula_responsable) VALUES ('" + nuevo.getProposito + "', '" + nuevo.getFecha + "', '" + nuevo.getProcedimiento + "','" + nuevo.getAmbiente + "', '" + nuevo.getCriterio + "', '" + nuevo.getTecnica + "', null , '" + nuevo.getIdProyecto + "', '" + nuevo.getCedulaResponsable + "')";
                    return acceso.insertarDatos(insercion);
                }
                else if (nuevo.getTecnica == "Seleccione")
                {
                    string insercion = "INSERT INTO Diseno_Pruebas (proposito_diseno, fecha, procedimiento_diseno, ambiente_diseno, criterios_aceptacion, tecnica, nivel, id_proyecto, cedula_responsable) VALUES ('" + nuevo.getProposito + "', '" + nuevo.getFecha + "', '" + nuevo.getProcedimiento + "','" + nuevo.getAmbiente + "', '" + nuevo.getCriterio + "', null , '" + nuevo.getNivel + "', '" + nuevo.getIdProyecto + "', '" + nuevo.getCedulaResponsable + "')";
                    return acceso.insertarDatos(insercion);
                }
                else
                {
                    string insercion = "INSERT INTO Diseno_Pruebas (proposito_diseno, fecha, procedimiento_diseno, ambiente_diseno, criterios_aceptacion, tecnica, nivel, id_proyecto, cedula_responsable) VALUES ('" + nuevo.getProposito + "', '" + nuevo.getFecha + "', '" + nuevo.getProcedimiento + "','" + nuevo.getAmbiente + "', '" + nuevo.getCriterio + "', '" + nuevo.getTecnica + "', '" + nuevo.getNivel + "', '" + nuevo.getIdProyecto + "', '" + nuevo.getCedulaResponsable + "')";
                    return acceso.insertarDatos(insercion);
                }

            }
            catch (SqlException e)
            {
                return false;
            }

        }
     /*Método para ejecutar la acción del IMEC correspondiente a la base de datos.
        * Requiere: un modo que corresponde a 1 si es una inserción, 2 - modificación y 3 Borrado.
        * Modifica una variable boolean dependiendo si la inserción el borrado y el modificar se llevan a cabo correctamente.
        * Retorna el valor de la variable booleana.
        */
        public bool ejecutarAccion(int modo, int accion, Object[] datos, int identificador, string perfil)
        {

            Boolean resultado = false;
            switch (modo)
            {
                case 1:
                    { // INSERTAR
                        if (accion == 1) //insertar diseño de prueba
                        {
                            EntidadDiseno nuevo = new EntidadDiseno(datos);
                            resultado = controladoraBDDiseno.insertarDiseno(nuevo);
                            Debug.WriteLine("Este es el resultado de insertar diseno: " + resultado);
                        }
                        else if (accion == 2) //insertar en EntidadRequerimientoDiseño
                        {
                            EntidadRequerimientoDiseño nuevo = new EntidadRequerimientoDiseño(datos);
                            resultado = controladoraBDDiseno.insertarRequerimientoDiseño(nuevo);
                        }
                    }
                    break;
                case 2:
                    { // MODIFICAR

                        if (accion == 1)
                        {
                            EntidadDiseno entDiseño = new EntidadDiseno(datos);                            
                            return controladoraBDDiseno.modificarDiseño(entDiseño, identificador);

                        }
                        else if (accion == 2)
                        {
                            EntidadRequerimientoDiseño entReqD = new EntidadRequerimientoDiseño(datos);
                            return controladoraBDDiseno.modificarRequerimientosDiseño(entReqD, datos);
                        }
                    }
                    break;
                case 3:
                    { //ELIMINAR
                        if (accion == 1)//Eliminar diseño
                        {
                            resultado = controladoraBDDiseno.eliminarDiseño(identificador);
                        }
                        else if (accion == 2)//Eliminar requerimiento diseño
                        {
                            resultado = controladoraBDDiseno.eliminarRequerimientoDiseño(identificador);
                        }
                    }
                    break;
            }
            return resultado;
        }