private void LoadGrid()
        {
            MateriaLogic   ml = new MateriaLogic();
            List <Materia> materiasDelPlan = ml.GetMateriasDelPlan(userSesion.Persona.Plan);

            InscripcionLogic         il = new InscripcionLogic();
            List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

            foreach (Materia mat in materiasDelPlan)
            {
                foreach (AlumnoInscripcion alumnoInsc in inscripcionesDelAlumno)
                {
                    if (alumnoInsc.Curso.Materia.ID == mat.ID &&
                        (alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Aprobada ||
                         alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Inscripto))
                    {
                        mat.CondicionAlumno = alumnoInsc.Condicion;
                        mat.NotaAlumno      = alumnoInsc.Nota;
                        break;
                    }

                    if (alumnoInsc.Curso.Materia.ID == mat.ID &&
                        alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Regular)
                    {
                        mat.CondicionAlumno = alumnoInsc.Condicion;
                        mat.NotaAlumno      = alumnoInsc.Nota;
                    }
                }
            }

            this.gridView.DataSource = materiasDelPlan;
            this.gridView.DataBind();
        }
        protected void verComisionesLinkButton_Click(object sender, EventArgs e)
        {
            if (this.IsEntitySelected)
            {
                MateriaLogic ml = new MateriaLogic();
                Materia      materiaSeleccionada = ml.GetOne(this.SelectedID);

                InscripcionLogic         il = new InscripcionLogic();
                List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

                foreach (AlumnoInscripcion alumnoInsc in inscripcionesDelAlumno)
                {
                    if (alumnoInsc.Curso.Materia.ID == materiaSeleccionada.ID &&
                        (alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Aprobada ||
                         alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Inscripto))
                    {
                        materiaSeleccionada.CondicionAlumno = alumnoInsc.Condicion;
                        materiaSeleccionada.NotaAlumno      = alumnoInsc.Nota;
                        break;
                    }

                    if (alumnoInsc.Curso.Materia.ID == materiaSeleccionada.ID &&
                        alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Regular)
                    {
                        materiaSeleccionada.CondicionAlumno = alumnoInsc.Condicion;
                        materiaSeleccionada.NotaAlumno      = alumnoInsc.Nota;
                    }
                }

                if (materiaSeleccionada.CondicionAlumno != AlumnoInscripcion.Condiciones.Aprobada)
                {
                    VerificarMateriasCorrelativasLogic vmcl = new VerificarMateriasCorrelativasLogic();

                    if (vmcl.PuedeInscribirse(userSesion.Persona, materiaSeleccionada))
                    {
                        Response.Redirect("~/ComisionesDisponibles.aspx?IdMateria=" + this.SelectedID);
                    }
                    else
                    {
                        this.textoAlerta.InnerText      = "Tiene materias correlativas pendientes";
                        this.alerta.Attributes["style"] = "background-color: #F0B435";
                        this.alerta.Visible             = true;
                    }
                }
                else
                {
                    this.textoAlerta.InnerText      = "Materia aprobada anteriormente";
                    this.alerta.Attributes["style"] = "background-color: #F0B435";
                    this.alerta.Visible             = true;
                }
            }
            else
            {
                this.textoAlerta.InnerText      = "Seleccione una materia";
                this.alerta.Attributes["style"] = "background-color: #F0B435";
                this.alerta.Visible             = true;
            }
        }
        private void LoadGrid()
        {
            CursoLogic   cl = new CursoLogic();
            List <Curso> cursosDeLaMateriaDisponibles = cl.GetCursosDeLaMateriaDisponibles(materia);

            if (cursosDeLaMateriaDisponibles == null || cursosDeLaMateriaDisponibles.Count() == 0)
            {
                lblMateria.Text = "La Materia " + materia.Descripcion + " no tiene cursos disponibles actualmente";
            }
            else
            {
                InscripcionLogic         il = new InscripcionLogic();
                List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

                foreach (Curso cur in cursosDeLaMateriaDisponibles)
                {
                    foreach (AlumnoInscripcion alins in inscripcionesDelAlumno)
                    {
                        if (alins.Curso.ID == cur.ID)
                        {
                            cur.CondicionAlumno = "Inscripto";
                            break;
                        }
                    }

                    if (cur.CondicionAlumno == null)
                    {
                        cur.CondicionAlumno = "No Inscripto";
                    }
                }

                lblMateria.Text          = "Materia: " + materia.Descripcion;
                this.gridView.DataSource = cursosDeLaMateriaDisponibles;
                this.gridView.DataBind();
            }
        }
        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            InscripcionLogic il = new InscripcionLogic();
            CursoLogic       cl = new CursoLogic();
            Curso            cursoSeleccionado = cl.GetOne((int)this.ViewState["IdCurso"]);

            if (cursoSeleccionado != null)
            {
                List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

                cursoSeleccionado.CondicionAlumno = "No Inscripto";
                foreach (AlumnoInscripcion alins in inscripcionesDelAlumno)
                {
                    if (alins.Curso.ID == cursoSeleccionado.ID)
                    {
                        cursoSeleccionado.CondicionAlumno = "Inscripto";
                        break;
                    }
                }

                if (cursoSeleccionado.CondicionAlumno == "Inscripto")
                {
                    try
                    {
                        il.DesinscribirAlumno(userSesion.Persona.ID, cursoSeleccionado.ID);

                        this.modal.Visible              = false;
                        this.textoAlerta.InnerText      = "Inscripción eliminada";
                        this.alerta.Attributes["style"] = "background-color: #31DE35";
                        this.alerta.Visible             = true;

                        LoadGrid();
                    }
                    catch (Exception)
                    {
                        this.textoAlerta.InnerText      = "Inscripción no eliminada";
                        this.alerta.Attributes["style"] = "background-color: #EC3434";
                        this.alerta.Visible             = true;
                    }
                }
                else if (cursoSeleccionado.CondicionAlumno == "No Inscripto")
                {
                    try
                    {
                        il.InscribirAlumno(userSesion.Persona.ID, cursoSeleccionado.ID);

                        this.modal.Visible              = false;
                        this.textoAlerta.InnerText      = "Inscripto a " + cursoSeleccionado.Materia.Descripcion + " en comisión " + cursoSeleccionado.Comision.Descripcion;
                        this.alerta.Attributes["style"] = "background-color: #31DE35";
                        this.alerta.Visible             = true;

                        LoadGrid();
                    }
                    catch (Exception)
                    {
                        this.textoAlerta.InnerText      = "Inscripción no registrada";
                        this.alerta.Attributes["style"] = "background-color: #EC3434";
                        this.alerta.Visible             = true;
                    }
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            userSesion = (Usuario)Session["userSesion"];

            if (userSesion != null)
            {
                if (userSesion.Persona.TipoPersona == Persona.TiposPersona.Administrativo)
                {
                    Response.Redirect("~/Home.aspx");
                }
                else if (userSesion.Persona.TipoPersona == Persona.TiposPersona.Docente)
                {
                    Response.Redirect("~/Home.aspx");
                }
                else if (userSesion.Persona.TipoPersona == Persona.TiposPersona.Alumno)
                {
                    if (Request.QueryString["IdMateria"] != null)
                    {
                        try
                        {
                            if (int.Parse(Request.QueryString["IdMateria"]) > 0)
                            {
                                MateriaLogic ml = new MateriaLogic();
                                materia = ml.GetOne(int.Parse(Request.QueryString["IdMateria"]));

                                if (materia != null)
                                {
                                    if (materia.Plan.ID == userSesion.Persona.Plan.ID)
                                    {
                                        InscripcionLogic         il = new InscripcionLogic();
                                        List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

                                        foreach (AlumnoInscripcion alumnoInsc in inscripcionesDelAlumno)
                                        {
                                            if (alumnoInsc.Curso.Materia.ID == materia.ID &&
                                                (alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Aprobada ||
                                                 alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Inscripto))
                                            {
                                                materia.CondicionAlumno = alumnoInsc.Condicion;
                                                materia.NotaAlumno      = alumnoInsc.Nota;
                                                break;
                                            }

                                            if (alumnoInsc.Curso.Materia.ID == materia.ID &&
                                                alumnoInsc.Condicion == AlumnoInscripcion.Condiciones.Regular)
                                            {
                                                materia.CondicionAlumno = alumnoInsc.Condicion;
                                                materia.NotaAlumno      = alumnoInsc.Nota;
                                            }
                                        }

                                        if (materia.CondicionAlumno != AlumnoInscripcion.Condiciones.Aprobada)
                                        {
                                            VerificarMateriasCorrelativasLogic vmcl = new VerificarMateriasCorrelativasLogic();

                                            if (vmcl.PuedeInscribirse(userSesion.Persona, materia))
                                            {
                                                HtmlControl lbl = (HtmlControl)Master.FindControl("lblInscripcionCursosAlumno");
                                                lbl.Attributes["style"] = "color: orange;";

                                                LoadGrid();
                                            }
                                            else
                                            {
                                                Response.Redirect("~/InscripcionCursos.aspx");
                                            }
                                        }
                                        else
                                        {
                                            Response.Redirect("~/InscripcionCursos.aspx");
                                        }
                                    }
                                    else
                                    {
                                        Response.Redirect("~/InscripcionCursos.aspx");
                                    }
                                }
                                else
                                {
                                    Response.Redirect("~/InscripcionCursos.aspx");
                                }
                            }
                            else
                            {
                                Response.Redirect("~/InscripcionCursos.aspx");
                            }
                        }
                        catch (Exception)
                        {
                            Response.Redirect("~/InscripcionCursos.aspx");
                        }
                    }
                    else
                    {
                        Response.Redirect("~/InscripcionCursos.aspx");
                    }
                }
            }
            else
            {
                Response.Redirect("~/Login.aspx");
            }
        }
        protected void gridView_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.alerta.Visible = false;

            CursoLogic cl = new CursoLogic();
            Curso      cursoSeleccionado = cl.GetOne((int)gridView.SelectedValue);

            if (cursoSeleccionado != null)
            {
                InscripcionLogic         il = new InscripcionLogic();
                List <AlumnoInscripcion> inscripcionesDelAlumno = il.GetInscripcionesDelAlumno(userSesion.Persona);

                cursoSeleccionado.CondicionAlumno = "No Inscripto";
                foreach (AlumnoInscripcion alins in inscripcionesDelAlumno)
                {
                    if (alins.Curso.ID == cursoSeleccionado.ID)
                    {
                        cursoSeleccionado.CondicionAlumno = "Inscripto";
                        break;
                    }
                }

                LoadForm(cursoSeleccionado);

                if (cursoSeleccionado.CondicionAlumno == "No Inscripto")
                {
                    btnAceptar.Text = "Inscribirse";

                    if (userSesion.Habilitado)
                    {
                        bool         inscriptoAOtraComision       = false;
                        List <Curso> cursosDeLaMateriaDisponibles = cl.GetCursosDeLaMateriaDisponibles(materia);
                        foreach (Curso c in cursosDeLaMateriaDisponibles)
                        {
                            foreach (AlumnoInscripcion alins in inscripcionesDelAlumno)
                            {
                                if (alins.Curso.ID == c.ID)
                                {
                                    inscriptoAOtraComision = true;
                                    break;
                                }
                            }

                            if (inscriptoAOtraComision)
                            {
                                break;
                            }
                        }

                        if (!inscriptoAOtraComision)
                        {
                            if (cursoSeleccionado.CuposDisponibles > 0)
                            {
                                this.modal.Visible = true;
                            }
                            else
                            {
                                this.textoAlerta.InnerText      = "No hay cupos disponibles";
                                this.alerta.Attributes["style"] = "background-color: #F0B435";
                                this.alerta.Visible             = true;
                            }
                        }
                        else
                        {
                            this.textoAlerta.InnerText      = "Ya se ha inscripto a la materia en otra comisión";
                            this.alerta.Attributes["style"] = "background-color: #F0B435";
                            this.alerta.Visible             = true;
                        }
                    }
                    else
                    {
                        this.textoAlerta.InnerText      = "No está habilitado para inscribirse";
                        this.alerta.Attributes["style"] = "background-color: #F0B435";
                        this.alerta.Visible             = true;
                    }
                }
                else if (cursoSeleccionado.CondicionAlumno == "Inscripto")
                {
                    btnAceptar.Text    = "Darse de baja";
                    this.modal.Visible = true;
                }
            }
            else
            {
                this.textoAlerta.InnerText      = "Seleccione un curso";
                this.alerta.Attributes["style"] = "background-color: #F0B435";
                this.alerta.Visible             = true;
            }
        }