public List<EntidadEjecucion> consultarEjecuciones(string idProy, string idDise)
        {
            List<EntidadEjecucion> l = new List<EntidadEjecucion>();
            DataTable data = controlBD.consultarEjecuciones(idProy, idDise);

               foreach (DataRow row in data.Rows)
               {
                   int id = Int32.Parse(row["id"].ToString());
                   DateTime fecha = Convert.ToDateTime(row["fecha"].ToString());
                   string incidencias = row["incidencias"].ToString();
                   int cedResp = Int32.Parse(row["cedResp"].ToString());
                   string responsable = row["n"].ToString();
                   int idDi = Int32.Parse(idDise);
                   string idPr = idProy;

                   EntidadEjecucion entidad = new EntidadEjecucion(id, cedResp, responsable, fecha, incidencias, idDi, idPr);
                   l.Add(entidad);
               }
               return l;
        }
        public int modifica_Ejec(EntidadEjecucion enEjec,  List<EntidadNoConformidad> listaConf)
        {
            int resultado = 0;

            DateTime fecha = enEjec.Fecha;
            string fec = fecha.ToString("yyy-MM-dd", CultureInfo.InvariantCulture);
            try
            {
                string consulta = "Update Ejecuciones Set fecha ='"+ fec +"', incidencias ='" + enEjec.Incidencias + "',cedResp ='" + enEjec.Responsable + "'"+
                    "where id =  '"+enEjec.Id +"';";

                SqlDataReader reader = baseDatos.ejecutarConsulta(consulta);
                if (reader.RecordsAffected > 0)
                {
                    //Todo bien, todo sano
                    resultado = 1;
                }
                reader.Close();
            }
            catch (SqlException e)
            {
                throw e;
                // return -1;
            }
            for (int i = 0; i < listaConf.Count; i++)
            {
                if (listaConf.ElementAt(i).Id == -1)
                {
                    try
                    {
                        string consulta = "insert into NoConformidad (idEjecucion, idDise, idCaso, tipo, descripcion, justificacion, estado,imagen) values (@0,@1,@2,@3,@4,@5,@6,@7)";
                        Object[] dist = new Object[8];
                        dist[0] = listaConf.ElementAt(i).IdEjecu;
                        dist[1] = listaConf.ElementAt(i).IdDise;
                        dist[2] = listaConf.ElementAt(i).IdCaso;
                        dist[3] = listaConf.ElementAt(i).Tipo;
                        dist[4] = listaConf.ElementAt(i).Descripcion;
                        dist[5] = listaConf.ElementAt(i).Justificacion;
                        dist[6] = listaConf.ElementAt(i).Estado;
                        dist[7] = listaConf.ElementAt(i).Imagen;

                        SqlDataReader dr = baseDatos.ejecutarConsulta(consulta, dist);
                        if (dr.RecordsAffected > 0)
                        {
                            //Todo bien, todo sano
                            //resultado+=1;
                        }
                        dr.Close();
                    }
                    catch (SqlException e)
                    {
                        throw e;
                        //return -1;
                    }
                }
                else
                {

                        try
                        {
                            string consulta = "UPDATE NoConformidad set tipo ='" + listaConf.ElementAt(i).Tipo + "', idCaso='" + listaConf.ElementAt(i).IdCaso + "' , descripcion='" + listaConf.ElementAt(i).Descripcion + "', justificacion= '" + listaConf.ElementAt(i).Justificacion + "' , estado='" + listaConf.ElementAt(i).Estado + "'" +
                            " where idTupla = " + listaConf.ElementAt(i).Id + " and idEjecucion= '" + listaConf.ElementAt(i).IdEjecu + "';";
                            SqlDataReader reader = baseDatos.ejecutarConsulta(consulta);
                            if (reader.RecordsAffected > 0)
                            {
                                //Todo bien, todo sano
                                resultado=1;
                            }
                            reader.Close();
                        }
                        catch (SqlException s)
                        {
                        throw s;
                        //return -1;

                        }
                }
            }
            return resultado;
        }
 public void modificarEjecucion(EntidadEjecucion entidad)
 {
 }
        public int insertarEjecucion(EntidadEjecucion ent, List<EntidadNoConformidad> listaConf)
        {
            int resultado = 2;
            int idEjec = 0;

            try
            {
                string consulta = "insert into Ejecuciones (fecha, incidencias, cedResp,idDise, idProy) values( @0,  @1, @2,  @3, @4);";

                Object[] dis = new Object[5];
                dis[0] = ent.Fecha;
                dis[1] = ent.Incidencias;
                dis[2] = ent.Responsable;
                dis[3] = ent.IdDise;
                dis[4] = ent.IdProy;

                SqlDataReader dr = baseDatos.ejecutarConsulta(consulta,dis);
                if (dr.RecordsAffected > 0)
                {
                    //Todo bien, todo sano
                    resultado = 0;
                }
                dr.Close();

                consulta = "Select Max(id) from Ejecuciones";
                SqlDataReader read = baseDatos.ejecutarConsulta(consulta);
                while (read.Read())
                {
                    idEjec = read.GetInt32(0);
                }
                read.Close();

                if (listaConf != null)
                {
                    for (int i = 0; i < listaConf.Count; i++)
                    {
                        consulta = "insert into NoConformidad (idEjecucion, idDise, idCaso, tipo, descripcion, justificacion, estado,imagen) values (@0,@1,@2,@3,@4,@5,@6,@7)";

                        Object[] dist = new Object[8];
                        dist[0] = idEjec;
                        dist[1] = listaConf.ElementAt(i).IdDise;
                        dist[2] = listaConf.ElementAt(i).IdCaso;
                        dist[3] = listaConf.ElementAt(i).Tipo;
                        dist[4] = listaConf.ElementAt(i).Descripcion;
                        dist[5] = listaConf.ElementAt(i).Justificacion;
                        dist[6] = listaConf.ElementAt(i).Estado;
                        dist[7] = listaConf.ElementAt(i).Imagen;

                        SqlDataReader ddr = baseDatos.ejecutarConsulta(consulta, dist);
                        if (dr.RecordsAffected > 0)
                        {
                            //Todo bien, todo sano
                            resultado = 0;
                        }
                        ddr.Close();
                    }
                }
            }
            catch (SqlException e)
            {
                resultado = e.Number;
            }

            return resultado;
        }
        public EntidadEjecucion consultarEjecucion(int idEjec)
        {
            string consulta = "SELECT e.id, e.cedResp, CONCAT(u.pNombre, ' ', u.pApellido, ' ', u.sApellido), e.fecha, e.incidencias, e.idDise, e.idProy FROM Ejecuciones e, Usuario u "
                            + "WHERE e.id="+idEjec+" AND u.cedula=e.cedResp;";
            int cedResp = -1;
            string nombre = "";
            DateTime fecha = DateTime.Now;
            string incidencias = "";
            int idDise = -1;
            string idProy = "";
            try
            {
                SqlDataReader reader = baseDatos.ejecutarConsulta(consulta);
                if (reader.Read())
                {
                    cedResp = reader.GetInt32(1);
                    nombre = reader.GetString(2);
                    fecha = reader.GetDateTime(3);
                    incidencias = reader.GetString(4);
                    idDise = reader.GetInt32(5);
                    idProy = reader.GetString(6);
                }
                reader.Close();

            }
            catch (SqlException ex)
            {
                throw ex;
            }
            EntidadEjecucion ejec = new EntidadEjecucion(idEjec, cedResp, nombre, fecha, incidencias, idDise, idProy);
            return ejec;
        }
 protected void cambiaProyecto2Box(object sender, EventArgs e)
 {
     ViewState["estaGuardado"] = false;
     int[] idsP = (int[])ViewState["idsproys"];
     if (proyecto2.SelectedIndex != 0)
     {
         ViewState["idproy2"] = idsP[proyecto2.SelectedIndex];
         llenaDisenos2(idsP[proyecto2.SelectedIndex]);
         if (tipo.Value == "progreso")
         {
             ViewState["ejec2"] = new EntidadEjecucion(); ;
             ViewState["conf2"] = new EntidadNoConformidad[1];
         }
     }
     else
     {
         ViewState["idsejec2"] = null;
         ViewState["idsdise2"] = null;
         ViewState["idproy2"] = null;
         ViewState["iddise2"] = null;
         ViewState["idejec2"] = null;
         diseno2.Items.Clear();
         ejecucion2.Items.Clear();
         ViewState["ejec2"] = null;
         ViewState["conf2"] = null;
     }
 }
        public EntidadEjecucion[] obtieneEjecuciones(DataTable dt)
        {
            int idEjecActual = -1;
            EntidadEjecucion[] res = new EntidadEjecucion[2];
            foreach (DataRow r in dt.Rows)
            {
                if (idEjecActual != (int)r[2])
                {
                    if (idEjecActual == -1)
                    {
                        res[0] = controlRepo.consultarEjecucion((int)r[2]);
                    }
                    idEjecActual = (int)r[2];
                }
            }
            res[1] = controlRepo.consultarEjecucion(idEjecActual);

            return res;
        }
        public int modif_Ejec(Object [] ejec,  List<Object[]> lista_No_Conf)
        {
            List<EntidadNoConformidad> listaConf = new List<EntidadNoConformidad>();
            EntidadEjecucion enEjec = new EntidadEjecucion(ejec,1);

            for (int i = 0; i < lista_No_Conf.Count; i++) {
                EntidadNoConformidad ent_NC = new EntidadNoConformidad(lista_No_Conf.ElementAt(i), 1);
                listaConf.Add(ent_NC);

            }
            try
            {
                return controlBD.modifica_Ejec(enEjec,listaConf);
            }
            catch (SqlException e)
            {
                throw e;
                //return ""+e.Nr;
            }
        }
 public void modificarEjecucion(Object[] args)
 {
     EntidadEjecucion entidad = new EntidadEjecucion(args);
     controlBD.modificarEjecucion(entidad);
 }
        public int insertarEjecucion(Object[] ejecucion,List<Object[]> noConformidad)
        {
            EntidadEjecucion ejec = new EntidadEjecucion(ejecucion);
            List<EntidadNoConformidad> listaConf = new List<EntidadNoConformidad>();

            if (noConformidad != null)
            {
                for (int i = 0; i < noConformidad.Count; i++)
                {
                    EntidadNoConformidad conf = new EntidadNoConformidad(noConformidad.ElementAt(i), 1);
                    listaConf.Add(conf);
                }
            }
            else
            {
                listaConf = null;
            }

            try
            {
                return controlBD.insertarEjecucion(ejec, listaConf);
                //return controlBD.insertarEjecucion(ejec);
            }
            catch (SqlException e)
            {
                throw e;
                //return e.Number;
            }
        }