//TODO: modificar que agregue los proyectos y modificar la base de datos para que acepte el peso del proyecto private void proyectoDGW_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try { if (proyectoDGW.Columns[e.ColumnIndex].Name == "Proyectos") { DataGridViewRow row = proyectoDGW.Rows[e.RowIndex]; DataGridViewCheckBoxCell cellSelecion = row.Cells[0] as DataGridViewCheckBoxCell; if (cellSelecion.Value != null) { if (Convert.ToBoolean(cellSelecion.Value)) { PROYECTO Py = project.GetProject((Guid)row.Cells["Codigo"].Value); PROYECTOSPORETAPA projectStageFather = new PROYECTOSPORETAPA(); projectStageFather.NROPROYCONTENEDOR = newProject.NROPROY; projectStageFather.NROPROYCONTENIDO = Py.NROPROY; projectStageFather.ETAPA = newProject.ETAPA + 1; projectStageFather.PESO = row.Cells["PesoProyecto"].Value != null ? (decimal)row.Cells["PesoProyecto"].Value : 0; if (Py != null) { newProject.PROYECTOSPORETAPA.Add(projectStageFather); //Proyectos por por etapa va a ser la lista de los hijos Py.PROYECTOSPORETAPA1.Add(projectStageFather); // proyectos por etapa 1 va a ser el campo para el padre Py.ETAPA = projectStageFather.ETAPA + 1; } } else { PROYECTO Py = project.GetProject((Guid)row.Cells["Codigo"].Value); PROYECTOSPORETAPA projectStage = new PROYECTOSPORETAPA(); projectStage.NROPROYCONTENEDOR = newProject.NROPROY; projectStage.NROPROYCONTENIDO = Py.NROPROY; projectStage.ETAPA = newProject.ETAPA + 1; projectStage.PESO = row.Cells["PesoProyecto"].Value != null ? (decimal)row.Cells["PesoProyecto"].Value : 0; if (Py != null) { newProject.PROYECTOSPORETAPA.Remove(projectStage); Py.PROYECTOSPORETAPA1.Remove(projectStage); Py.ETAPA = projectStage.ETAPA - 1; } } } } } catch (Exception ex) { Error_Form errorForm = new Error_Form(ex.Message); errorForm.MdiParent = ParentForm; errorForm.Show(); } }
//Obtener un los hijos de un proyecto con un guid del proyecto y ademas los proyectos que esten libres que no tengan padre public object GetProjects(PROYECTO pj) { try { List<PROYECTO> listPy = new List<PROYECTO>(); PROYECTOSPORETAPA PBS = new PROYECTOSPORETAPA(); PBS.NROPROYCONTENEDOR = pj.NROPROY; listPy = this.GetProjectsFree(pj).ToList(); // obtenemos los proyectos que no tienen un padre y que no sea el proyecto que se va actualizar var query = from p in this.sifcaRepository.PROYECTOSPORETAPA where (p.NROPROYCONTENEDOR == pj.NROPROY) select p; //obtenemos los hijos (proyectos por etapa) de este proyecto foreach (PROYECTOSPORETAPA pyBstate in query.ToList()) { listPy.Add(this.GetProject(pyBstate.NROPROYCONTENIDO)); } return listPy; } catch (Exception ex) { return ex.Message; } }