private void btnAceptar_Click(System.Object sender, System.EventArgs e) { switch (formMode) { case FormMode.nuevo: { if (ExisteCurso() == false) { if (ValidarCampos()) { var oCurso = new Curso(); oCurso.Nombre = txtNombre.Text; oCurso.Descripcion = txtDescripcion.Text; oCurso.FechaVigencia = Convert.ToDateTime((txtFecha.Text)); oCurso.Categoria = new Categoria(); oCurso.Categoria.IdCategoria = (int)cmbCategoria.SelectedValue; oCurso.Objetivo = new List <Objetivo>(); oCurso.Objetivo = listaObjetivos; if (oCursoService.CrearCurso(oCurso)) { MessageBox.Show("¡Curso insertado!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } } } else { MessageBox.Show("Nombre de Curso encontrado. Ingrese un nombre diferente", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; } case FormMode.actualizar: { List <Objetivo> resultado = new List <Objetivo>(); BindingList <Objetivo> listaObjetivosAgregar = new BindingList <Objetivo>(); BindingList <Objetivo> listaObjetivosEliminarVar = new BindingList <Objetivo>(); listaObjetivosAgregar = listaObjetivos; var obj = new Objetivo(); // FALTA VER COMO HACER PARA QUE AGREGUE UN nuevo objetivo que ya lo tenia. LISTO for (int i = 0; i < listaObjetivos.Count(); i++) { for (int j = 0; j < listaObjetivosOriginal.Count(); j++) { if (listaObjetivos.Contains(listaObjetivosOriginal.ElementAt(j))) { //lista en grilla listaObjetivosAgregar.Remove(listaObjetivos.ElementAt(i)); //lista original //listaObjetivoseliminar.Remove(listaObjetivosOriginal.ElementAt(j)); } if (listaObjetivoseliminar.Contains(listaObjetivosOriginal.ElementAt(j))) { listaObjetivosEliminarVar.Add(listaObjetivosOriginal.ElementAt(j)); //HASTA ACA LLEGUE GENERAR METODO DE ELIMINACION DE CURSOS POR OBJETIVO oCursoSelected.Nombre = txtNombre.Text; oCursoSelected.Descripcion = txtDescripcion.Text; oCursoSelected.FechaVigencia = Convert.ToDateTime(txtFecha.Text); oCursoSelected.Categoria = new Categoria(); oCursoSelected.Categoria.IdCategoria = (int)cmbCategoria.SelectedValue; oCursoSelected.Objetivo = new BindingList <Objetivo>(); oCursoSelected.Objetivo = listaObjetivosEliminarVar; oCursoService.EliminarCursoObjetivo(oCursoSelected); listaObjetivosEliminarVar.Clear(); } } } BindingList <Objetivo> listaObjetivosAgregarFinal = new BindingList <Objetivo>(); listaObjetivosAgregarFinal = listaObjetivosAgregar; int k = listaObjetivosAgregar.Count(); BindingList <Objetivo> listaObjetivosAgregarFinal2 = new BindingList <Objetivo>(); for (int f = 0; f < k; f++) { var item = listaObjetivosAgregar.ElementAt(f); //oCursoSelected.Nombre = txtNombre.Text; //oCursoSelected.Descripcion = txtDescripcion.Text; //oCursoSelected.FechaVigencia = Convert.ToDateTime(txtFecha.Text); //oCursoSelected.Categoria = new Categoria(); //oCursoSelected.Categoria.IdCategoria = (int)cmbCategoria.SelectedValue; //oCursoSelected.Objetivo = new List<Objetivo>(); //oCursoSelected.Objetivo = listaObjetivosAgregarFinal; if (oCursoService.Existe(oCursoSelected, item)) { oCursoSelected.Objetivo = new List <Objetivo>(); oCursoSelected.Objetivo = listaObjetivosAgregarFinal; oCursoService.ModificarDelete(oCursoSelected, item); } else { listaObjetivosAgregarFinal2.Add(item); } } oCursoSelected.Nombre = txtNombre.Text; oCursoSelected.Descripcion = txtDescripcion.Text; oCursoSelected.FechaVigencia = Convert.ToDateTime(txtFecha.Text); oCursoSelected.Categoria = new Categoria(); oCursoSelected.Categoria.IdCategoria = (int)cmbCategoria.SelectedValue; oCursoSelected.Objetivo = new List <Objetivo>(); oCursoSelected.Objetivo = listaObjetivosAgregarFinal2; if (oCursoService.ActualizarCursos(oCursoSelected)) { MessageBox.Show("¡Curso actualizado!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Dispose(); } else { MessageBox.Show("Error al actualizar el Curso", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } break; } case FormMode.eliminar: { if (MessageBox.Show("¿Seguro que desea eliminar el Curso seleccionado?", "Aviso", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { if (oCursoService.EliminarCurso(oCursoSelected)) //REPARAR ESTE { MessageBox.Show("¡Curso eliminado!", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { MessageBox.Show("Error al eliminar el curso", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); } } break; } } }