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;
            }
            }
        }