private void ActualizarEstadoCurso(int estadoCursoId)
        {
            using ApplicationDbContext db = new ApplicationDbContext();
            cursoId = Convert.ToInt32(cmbCursos.SelectedValue);

            Curso curso = db.Cursos.Where(x => x.Id == cursoId).FirstOrDefault();

            var cursoDTO = new CursoDTO
            {
                Id            = curso.Id,
                EstadoCursoId = estadoCursoId
            };

            cursoDTO.MapToModel(curso);
            db.SaveChanges();
        }
        private void cmbCursos_SelectionChangeCommitted(object sender, EventArgs e)
        {
            soloLectura = true;
            cursoId     = Convert.ToInt32(cmbCursos.SelectedValue);

            using ApplicationDbContext db = new ApplicationDbContext();
            var estadoCursoId = db.Cursos.Where(x => x.Id == cursoId).Select(x => x.EstadoCursoId).FirstOrDefault();

            if (estadoCursoId == 1)
            {
                DialogResult dialogResult = MessageBox.Show("Desea Activar el curso de " + cmbCursos.Text + " ?", "Activar Cursos",
                                                            MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dialogResult == DialogResult.Yes)
                {
                    var estados = new string[] { "Activo", "En Curso" };

                    var query = (from c in db.Cursos
                                 join ec in db.EstadoCursos on c.EstadoCursoId equals ec.Id
                                 where estados.Contains(ec.Nombre)
                                 select c.Denominacion).ToList();

                    if (query.Count > 0)
                    {
                        chkActivo.CheckState     = CheckState.Unchecked;
                        chkEnCurso.CheckState    = CheckState.Unchecked;
                        chkFinalizado.CheckState = CheckState.Unchecked;

                        MessageBox.Show("No se puede Activar un curso nuevo mientras \n haya cursos en estado Activo o En Curso", "Activar Nuevo Curso",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                        DeshabilitarCheck();
                        LoadAlumnosxCurso();
                        DeshabilitarInscripcion();

                        return;
                    }

                    Curso curso = db.Cursos.Where(x => x.Id == cursoId).FirstOrDefault();

                    var cursoDTO = new CursoDTO
                    {
                        Id            = curso.Id,
                        EstadoCursoId = 2
                    };

                    cursoDTO.MapToModel(curso);
                    db.SaveChanges();

                    chkActivo.Checked = true;
                }
                else if (dialogResult == DialogResult.No)
                {
                    chkActivo.CheckState     = CheckState.Unchecked;
                    chkEnCurso.CheckState    = CheckState.Unchecked;
                    chkFinalizado.CheckState = CheckState.Unchecked;

                    DeshabilitarCheck();
                    LoadAlumnosxCurso();
                    DeshabilitarInscripcion();

                    return;
                }
            }

            switch (estadoCursoId)
            {
            case 2:
                chkActivo.CheckState = CheckState.Checked;

                break;

            case 3:
                chkEnCurso.CheckState = CheckState.Checked;

                break;

            case 4:
                chkFinalizado.CheckState = CheckState.Checked;

                break;
            }

            LoadAlumnosxCurso();

            if (cursoId != 0 && estadoCursoId != 4)
            {
                HabilitarInscripcion();
                HabilitarCheck();
            }
            else
            {
                DeshabilitarInscripcion();
                DeshabilitarCheck();
            }


            soloLectura = false;
        }