/*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 cedula)
        {
            Boolean resultado = false;
            switch (modo)
            {
                case 1:
                    { // INSERTAR
                        if (accion == 1)//Insertar Funcionario
                        {
                            Funcionario nuevo = new Funcionario(datos);
                            resultado = controladoraBDRecurso.insertarFuncionario(nuevo);
                        }
                        else if (accion == 2) //Insertar administrador
                        {
                            EntidadAdministrador nuevoadmin = new EntidadAdministrador(datos);
                            resultado = controladoraBDRecurso.insertarAdministrador(nuevoadmin);
                        }
                        else if (accion == 3) //Insertar miembro de equipo de pruebas
                        {
                            EntidadMiembro nuevoamiembro = new EntidadMiembro(datos);
                            resultado = controladoraBDRecurso.insertarMiembro(nuevoamiembro);
                        }
                        else if (accion == 4) //Inserta telefonos del funcionario
                        {
                            EntidadTelFuncionario telefonos = new EntidadTelFuncionario(datos);
                            resultado = controladoraBDRecurso.insertarTelefono(telefonos);
                        }
                        else if (accion == 5) //Insertar miembro de equipo de pruebas en un determinado proyecto
                        {
                            EntidadTrabajaEn miembro = new EntidadTrabajaEn(datos);
                            resultado = controladoraBDRecurso.insertarMiembroProyecto(miembro);
                        }

                    }
                    break;
                case 2:
                    { // MODIFICAR

                        if (accion == 1)//Modificar funcionario , por parte de un miembro
                        {
                            Funcionario nuevo = new Funcionario(datos);
                            resultado = controladoraBDRecurso.modificarFuncionario(nuevo, cedula);
                        }
                    }
                    break;
                case 3:
                    {
                        if (accion == 2)
                        {
                            if (controladoraBDRecurso.eliminarTelefonoFuncionario(cedula))
                            {
                                resultado = true;

                            }
                            else
                            {
                                resultado = false;
                            }
                        }
                        else if(accion==1)
                        {
                            string perfil = buscarPerfil(cedula);
                            if (perfil == "Administrador")
                            {
                                if (controladoraProyecto.buscarAsignacionProyectos(cedula) == true)
                                {
                                    resultado = false;

                                }
                                else
                                {
                                    resultado = controladoraBDRecurso.eliminarFuncionario(cedula);
                                }
                            }
                            else
                            {
                                //Miembro
                                if (controladoraProyecto.buscarAsignacionMiembrosProyecto(cedula) == true)
                                {
                                    resultado = false;

                                }
                                else if (controladoraDiseno.buscarAsignacionMiembrosDiseno(cedula) == true)
                                {
                                    resultado = false;
                                }
                                else if(controladoraEjecucion.buscarAsignacionMiembrosEjecucion(cedula)==true)
                                {
                                    resultado = false;
                                }
                                else
                                {
                                    resultado = controladoraBDRecurso.eliminarFuncionario(cedula);
                                }//auqi se llamo a elimimnar
                            }
                        }
                    }
                    break;
            }
            return resultado;
        }
     /*Método para insertar miembro en la base de datos
      * Requiere: un objeto tipo EntidadMiembro el cual trae todos los datos encapsulados
      * Modifica: Crea el string con la consulta y la envia a la clase que maneja la conexion con la base de datos para insertarlo
      * Retorna: true si la inserción fue exitosa, false si hubo algún error y no se insertó
      */
     public bool insertarMiembro(EntidadMiembro nuevo)
     {
         try
         {
             string insercion = "INSERT INTO Miembro (cedula_miembro, tipo_rol) VALUES ('" + nuevo.getCedulaMiembro + "', '"+nuevo.getTipoRol +"')";
             return acceso.insertarDatos(insercion);

         }
         catch (SqlException e)
         {
             return false;
         }
     }