/*Método para insertar en la base de datos un nuevo proyecto
         * Requiere: un objeto tipo entidadProyecto con los datos a guardar
         * Modifica: realiza la sentencia sql para insertarel proyecto
         * Retorna: true si la inserción fue exitosa, false si no se pudo insertar en la base de datos
         */
        public bool insertarProyecto(EntidadProyecto nuevo)
        {
            try
            {
                string insercion = "INSERT INTO Proyecto (nombre_proyecto, obj_general, fecha_asignacion, tipo_estado, cedula_creador, cedula_lider, id_oficina) VALUES ('" + nuevo.getNombreProyecto + "', '" + nuevo.getObjGeneral + "', '" + nuevo.getFechaAsignacion + "', '" + nuevo.getTipoEstado + "', '" + nuevo.getCedulaCreador + "', '" + nuevo.getCedulaLider + "', '" + nuevo.getIdOficina + "')";

                return acceso.insertarDatos(insercion);

            }
            catch (SqlException e)
            {
                return false;
            }
        }
        //recibe datos del proyecto y id del proyecto
        public bool modificarProyecto(EntidadProyecto entidadP, String idProyecto)
        {
            try
            {
                string modif = "UPDATE Proyecto SET nombre_proyecto ='" + entidadP.getNombreProyecto + "', obj_general = '" + entidadP.getObjGeneral + "', fecha_asignacion = '" + entidadP.getFechaAsignacion + "', tipo_estado = '" + entidadP.getTipoEstado + "', cedula_lider = '" + entidadP.getCedulaLider + "', id_oficina = '" + entidadP.getIdOficina + "' WHERE id_proyecto ='" + idProyecto + "';";
                return acceso.insertarDatos(modif);

            }
            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, String nombre, string perfil)
        {

            Boolean resultado = false;
            switch (modo)
            {
                case 1:
                    { // INSERTAR
                        if (accion == 1) //inserta oficina usuaria
                        {
                            EntidadOficinaUsuaria nuevo = new EntidadOficinaUsuaria(datos);
                            resultado = controladoraBDProyecto.insertarOficina(nuevo);
                        }
                        else if (accion == 2) //inserta telefonos de oficina usuaria
                        {
                            EntidadTelOficina telefonosOficina = new EntidadTelOficina(datos);
                            resultado = controladoraBDProyecto.insertarTelefono(telefonosOficina);
                        }
                        else if (accion == 3) //inserta un nuevo proyecto
                        {
                            EntidadProyecto proyecto = new EntidadProyecto(datos);
                            resultado = controladoraBDProyecto.insertarProyecto(proyecto);
                        }
                        else if (accion == 4) //insertar miembros de un equipo de pruebas
                        {
                            ControladoraRecursos controladoraRH = new ControladoraRecursos();
                            resultado = controladoraRH.ejecutarAccion(1, 5, datos, "");
                        }
                        else if (accion == 5) //Insertar requerimientos
                        {
                            EntidadRequerimiento requerimiento = new EntidadRequerimiento(datos);
                            resultado = controladoraBDProyecto.insertarRequerimiento(requerimiento);
                        }
                    }
                    break;
                case 2:
                    { // MODIFICAR

                        if (accion == 1)//PROYECTO
                        {
                            EntidadProyecto entidadP = new EntidadProyecto(datos);
                            //int idProyecto = Int32.Parse(nombre); //supongo que nombre viene el id sino habría que hacer llamado de otro método
                            return controladoraBDProyecto.modificarProyecto(entidadP, nombre);
                        }
                        else if (accion == 2)//OFICINA USUARIA
                        {
                            EntidadOficinaUsuaria entidadOU = new EntidadOficinaUsuaria(datos);

                            resultado = controladoraBDProyecto.modificarOfUsuaria(entidadOU, nombre);
                        }
                    }
                    break;
                case 3:
                    { //ELIMINAR
                        if (accion == 3)//TELEFONOOFICINAUSUARIA
                        {
                            int idOficinaUsuaria = Int32.Parse(nombre); //en nombre viene el id de la oficina usuaria, para eliminarlo
                            resultado = controladoraBDProyecto.eliminarTelefonoOficinaUsuaria(idOficinaUsuaria);
                        }
                        else if (accion == 4)//TRABAJA_EN
                        {
                            int idProyecto = Int32.Parse(nombre);
                            controladoraRH = new ControladoraRecursos();
                            resultado = controladoraRH.eliminarTrabaja_En(idProyecto);//en nombre viene elidmiembroConsultado, idProyectoConsultado, para eliminarlo
                        }
                    }
                    break;
            }
            return resultado;

        }