public List <ETema> GetTemasExamenesCalificados(EUsuario usuario, ECurso curso)
    {
        List <ETema> temasExamenesResueltos = GetTemasExamenResueltos(usuario, curso);

        GestionExamen gestorExamenes = new GestionExamen();

        List <EEjecucionExamen> ejecuciones = new List <EEjecucionExamen>();

        foreach (ETema tema in temasExamenesResueltos)
        {
            ejecuciones.Add(gestorExamenes.GetEjecucion(usuario, tema));
        }

        List <ETema> temasExamenesCalificados = new List <ETema>();

        foreach (EEjecucionExamen ejecucion in ejecuciones)
        {
            if (gestorExamenes.IsExamenCalificado(ejecucion))
            {
                temasExamenesCalificados.Add(GetTema(ejecucion));
            }
        }

        return(temasExamenesCalificados);
    }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ECurso curso = (ECurso)Session[Constantes.CURSO_SELECCIONADO_PARA_EDITAR_TEMAS];


        if (curso == null)
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }


        ETema tema = (ETema)Session[Constantes.TEMA_SELECCIONADO];

        Session["existenciaExamen"] = false;

        if (tema != null)
        {
            etiquetaCrearTema.Text = "Editar tema";
            cajaTitulo.Text        = tema.Titulo;
            GestionExamen gestorExamenes = new GestionExamen();
            EExamen       examen         = gestorExamenes.GetExamen(tema);

            bool existenciaExamen = false;

            if (examen != null)
            {
                existenciaExamen = true;
            }

            Session["existenciaExamen"] = existenciaExamen;
        }
    }
Beispiel #3
0
    public void VerCalificaciones(object sender, EventArgs e)
    {
        ImageButton boton          = (ImageButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in tablaCursos.Rows)
        {
            if (fila.Cells[5].Controls.Contains(boton))
            {
                filaAEncontrar = fila;
            }
        }

        int idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

        Session[Constantes.CURSO_SELECCIONADO_PARA_VER_NOTAS] = curso;

        Response.Redirect("~/Vistas/Cursos/VerMisNotas.aspx");
    }
    public void VerInformacionCurso(object sender, EventArgs e)
    {
        LinkButton  hiperEnlace    = (LinkButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in tablaCursos.Rows)
        {
            if (fila.Cells[1].Controls.Contains(hiperEnlace))
            {
                filaAEncontrar = fila;
                break;
            }
        }


        DataKeyArray arreglo = tablaCursos.DataKeys;
        int          idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        Session[Constantes.CURSO_SELECCIONADO] = curso;

        Response.Redirect("~/Vistas/Cursos/InformacionDelCurso.aspx");
    }
    public List <ECurso> GetCursosInscritos(EUsuario usuario, string nombre, string tutor, string fechaCreacion, string area)
    {
        List <ECurso> cursos = new List <ECurso>();

        List <EInscripcionesCursos> inscripciones = db.TablaInscripciones.Where(x => x.NombreUsuario.Equals(usuario.NombreDeUsuario)).ToList();

        foreach (EInscripcionesCursos inscripcion in inscripciones)
        {
            ECurso curso = db.TablaCursos.Where(x => x.Id == inscripcion.IdCurso).FirstOrDefault();
            cursos.Add(curso);
        }
        //Filtro
        if (!(string.IsNullOrEmpty(nombre) && string.IsNullOrEmpty(fechaCreacion) && (area == null || area.Equals("Área del conocimiento"))))
        {
            DateTime fecha = new DateTime();
            if (!string.IsNullOrEmpty(fechaCreacion))
            {
                fecha = DateTime.Parse(fechaCreacion);
            }
            else
            {
                fechaCreacion = "";
            }
            nombre = nombre ?? "";
            tutor  = tutor ?? "";
            cursos = cursos.Where(x => (tutor.Equals("") || x.Creador.Equals(tutor)) && (nombre.Equals("") ||
                                                                                         x.Nombre.Equals(nombre)) && (fechaCreacion.Equals("") || x.FechaCreacion.Equals(fecha)) &&
                                  (area.Equals("Área del conocimiento") || x.Area.Equals(area))).ToList();
        }
        return(cursos);
    }
Beispiel #6
0
    public void EliminarInscripcion(object sender, EventArgs e)
    {
        ImageButton boton          = (ImageButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in tablaCursos.Rows)
        {
            if (fila.Cells[7].Controls.Contains(boton))
            {
                filaAEncontrar = fila;
            }
        }

        int idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

        EInscripcionesCursos inscripcion = gestorCursos.GetInscripcion(usuario, curso);

        Base.Eliminar(inscripcion);

        Response.Redirect("~/Vistas/Cursos/ListaDeCursosInscritosDeLaCuenta.aspx");
    }
    public List <string> GetTutoresSrc(EUsuario usuario, string nombre)
    {
        if (nombre is null)
        {
            throw new ArgumentNullException(nameof(nombre));
        }

        List <ECurso> cursos         = new List <ECurso>();
        List <string> nombresTutores = new List <string>();

        List <EInscripcionesCursos> inscripciones = db.TablaInscripciones.Where(x => x.NombreUsuario.Equals(usuario.NombreDeUsuario)).ToList();

        foreach (EInscripcionesCursos inscripcion in inscripciones)
        {
            ECurso curso = db.TablaCursos.Where(x => x.Id == inscripcion.IdCurso).FirstOrDefault();

            cursos.Add(curso);
        }

        foreach (ECurso curso in cursos)
        {
            nombresTutores.Add(curso.Creador);
        }

        nombresTutores = nombresTutores.Distinct().ToList();

        return(nombresTutores);
    }
Beispiel #8
0
    public List <EMensaje> GetMensajes(EUsuario emisor, EUsuario receptor, ECurso curso)
    {
        List <EMensaje> mensajes = db.TablaMensajes.Where(x => x.NombreDeUsuarioEmisor.Equals(emisor.NombreDeUsuario) && x.NombreDeUsuarioReceptor.Equals(receptor.NombreDeUsuario) && x.IdCurso == curso.Id ||
                                                          x.NombreDeUsuarioEmisor.Equals(receptor.NombreDeUsuario) && x.NombreDeUsuarioReceptor.Equals(emisor.NombreDeUsuario) && x.IdCurso == curso.Id).OrderBy(x => x.Fecha).ToList();

        return(mensajes);
    }
    public int GetNumEstudiantes(ECurso curso)
    {
        List <EInscripcionesCursos> inscripciones = db.TablaInscripciones.Where(x => x.IdCurso == curso.Id).ToList();

        int numEstudiantes = inscripciones.Count;

        return(numEstudiantes);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        ECurso curso = (ECurso)Session[Constantes.CURSO_SELECCIONADO_PARA_VER_NOTAS];

        if (curso == null)
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }

        tablaTemario.DataBind();
    }
    public bool IsInscrito(EUsuario usuario, ECurso curso)
    {
        bool retorno = true;

        EInscripcionesCursos inscripcion = db.TablaInscripciones.Where(x => x.NombreUsuario.Equals(usuario.NombreDeUsuario) && x.IdCurso == curso.Id).FirstOrDefault();

        if (inscripcion == null)
        {
            retorno = false;
        }

        return(retorno);
    }
    public void MostrarModal()
    {
        Panel modal = GetModal();

        ASP.controles_interfazinscribirsecurso_interfazinscribirsecurso_ascx interfazInscripcion = new ASP.controles_interfazinscribirsecurso_interfazinscribirsecurso_ascx();
        EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];
        ECurso   curso   = (ECurso)Session[Constantes.CURSO_SELECCIONADO];

        interfazInscripcion.NombreDeUsuario = usuario.NombreDeUsuario;
        interfazInscripcion.IdCurso         = curso.Id;
        interfazInscripcion.Codigo          = curso.CodigoInscripcion;
        modal.Controls.Add(interfazInscripcion);
        panelModal.Controls.Add(modal);
    }
Beispiel #13
0
    public List <EUsuario> GetUsuarios(ECurso curso)
    {
        List <EInscripcionesCursos> inscripciones = db.TablaInscripciones.Where(x => x.IdCurso == curso.Id).ToList();

        List <EUsuario> usuarios = new List <EUsuario>();

        foreach (EInscripcionesCursos inscripcion in inscripciones)
        {
            EUsuario usuario = GetUsuario(inscripcion.NombreUsuario);

            usuarios.Add(usuario);
        }

        return(usuarios);
    }
    public void Expulsar(object sender, EventArgs e)
    {
        LinkButton hiperEnlace = (LinkButton)sender;

        DaoUsuario   gestorUsuarios = new DaoUsuario();
        GestionCurso gestorCursos   = new GestionCurso();

        EUsuario usuario = gestorUsuarios.GetUsuario(hiperEnlace.Text);
        ECurso   curso   = (ECurso)Session[Constantes.CURSO_SELECCIONADO_PARA_EXPULSAR_ALUMNOS];

        EInscripcionesCursos inscripcion = gestorCursos.GetInscripcion(usuario, curso);

        Base.Eliminar(inscripcion);

        Response.Redirect("~/Vistas/Cursos/ExpulsarAlumnos.aspx");
    }
Beispiel #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        cajaFechaInicio_CalendarExtender.StartDate = DateTime.Now;
        usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];
        if (usuario == null)
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }
        else if (usuario != null && usuario.Rol.Equals(Constantes.ROL_ADMIN))
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }
        else
        {
            cursoExistente = (ECurso)Session[Constantes.CURSO_SELECCIONADO_PARA_EDITAR];
            cajaFechaInicio.Attributes.Add("readonly", "readonly");
            if (Session["actualizando"] != null && cursoExistente != null)
            {
                if (DateTime.Now >= cursoExistente.FechaInicio && (bool)Session["actualizando"])
                {
                    cajaFechaInicio.Enabled = false;
                    Session["actualizando"] = false;
                    cursoExistente.Estado   = "activo";
                    Base.Actualizar(cursoExistente);
                    LB_editado.Visible = true;
                }
            }

            if (cursoExistente != null && !IsPostBack)
            {
                etiquetaCrearCurso.CssClass = "fa fa-edit fa-3x";
                etiquetaCrearCurso.Text     = "Editar curso";
                botonCrearCurso.Text        = "<strong>Editar curso</strong>";

                cajaTitulo.Text = cursoExistente.Nombre;
                desplegableArea.SelectedValue = cursoExistente.Area;
                cajaFechaInicio.Text          = cursoExistente.FechaInicio.ToString("dd/MM/yyyy");
                cajaDescripcion.Text          = cursoExistente.Descripcion;
                desplegableArea.Enabled       = false;
                if (DateTime.Now >= cursoExistente.FechaInicio)
                {
                    cajaFechaInicio.Enabled = false;
                }
            }
        }
    }
    public List <ETema> GetTemasConExamen(ECurso curso)
    {
        List <ETema> temas = db.TablaTemas.Where(x => x.IdCurso == curso.Id).OrderBy(x => x.Id).ToList();

        List <ETema> temasConExamen = new List <ETema>();

        foreach (ETema tema in temas)
        {
            EExamen examen = db.TablaExamenes.Where(x => x.IdTema == tema.Id).FirstOrDefault();

            if (examen != null)
            {
                temasConExamen.Add(tema);
            }
        }

        return(temasConExamen);
    }
Beispiel #17
0
    public static void CrearTema(string titulo, string contenido, bool existeExamen)
    {
        ETema tema = new ETema();

        tema.Titulo = titulo;

        contenido = contenido.Replace("\n\n", "");

        contenido = contenido.Replace("\n", "");

        tema.Informacion = contenido;


        ECurso curso = (ECurso)HttpContext.Current.Session[Constantes.CURSO_SELECCIONADO_PARA_EDITAR_TEMAS];

        tema.IdCurso = curso.Id;
        if (!existeExamen)
        {
            Base.Insertar(tema);
        }
    }
    public List <ETema> GetTemasExamenResueltos(EUsuario usuario, ECurso curso)
    {
        List <ETema> temasConExamen = GetTemasConExamen(curso);

        List <ETema> temas = new List <ETema>();

        foreach (ETema tema in temasConExamen)
        {
            GestionExamen gestorExamenes = new GestionExamen();

            EExamen examen = gestorExamenes.GetExamen(tema);

            EEjecucionExamen ejecucion = db.TablaEjecucionExamen.Where(x => x.IdExamen == examen.Id && x.NombreUsuario.Equals(usuario.NombreDeUsuario)).FirstOrDefault();

            if (ejecucion != null)
            {
                temas.Add(tema);
            }
        }

        return(temas);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string paginaContenedora = Page.GetType().ToString();

        if (paginaContenedora.Equals("ASP.vistas_cursos_informaciondelcurso_aspx"))
        {
            ECurso   curso   = (ECurso)Session[Constantes.CURSO_SELECCIONADO];
            EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

            GestionComentarios gestorComentarios = new GestionComentarios();
            List <EComentario> comentarios       = gestorComentarios.GetComentarios(curso);

            foreach (EComentario comentario in comentarios)
            {
                ASP.controles_comentarios_comentarioexistente_ascx comentarioExistente = new ASP.controles_comentarios_comentarioexistente_ascx();
                comentarioExistente.IdComentario = comentario.Id;

                panelComentarios.Controls.Add(comentarioExistente);
            }
        }
        else
        {
            ETema    tema    = (ETema)Session[Constantes.TEMA_SELECCIONADO];
            EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

            GestionComentarios gestorComentarios = new GestionComentarios();
            List <EComentario> comentarios       = gestorComentarios.GetComentarios(tema);

            foreach (EComentario comentario in comentarios)
            {
                ASP.controles_comentarios_comentarioexistente_ascx comentarioExistente = new ASP.controles_comentarios_comentarioexistente_ascx();
                comentarioExistente.IdComentario = comentario.Id;


                panelComentarios.Controls.Add(comentarioExistente);
            }
        }
    }
    public void VerCurso(object sender, EventArgs e)
    {
        LinkButton  boton          = (LinkButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in GridViewUsuSelec.Rows)
        {
            if (fila.Cells[1].Controls.Contains(boton))
            {
                filaAEncontrar = fila;
            }
        }

        int idCurso = Int32.Parse(GridViewUsuSelec.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        Session[Constantes.CURSO_SELECCIONADO] = curso;

        Response.Redirect("~/Vistas/Cursos/InformacionDelCurso.aspx");
    }
Beispiel #21
0
    public void CrearYEditarTemas(object sender, EventArgs e)
    {
        ImageButton boton          = (ImageButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in tablaCursos.Rows)
        {
            if (fila.Cells[7].Controls.Contains(boton))
            {
                filaAEncontrar = fila;
            }
        }

        int idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        Session[Constantes.CURSO_SELECCIONADO_PARA_EDITAR_TEMAS] = curso;

        Response.Redirect("~/Vistas/Cursos/ListaDeTemasDelCurso.aspx");
    }
Beispiel #22
0
    public void CalificarExamenes(object sender, EventArgs e)
    {
        ImageButton boton          = (ImageButton)sender;
        GridViewRow filaAEncontrar = null;

        foreach (GridViewRow fila in tablaCursos.Rows)
        {
            if (fila.Cells[9].Controls.Contains(boton))
            {
                filaAEncontrar = fila;
            }
        }

        int idCurso = Int32.Parse(tablaCursos.DataKeys[filaAEncontrar.RowIndex].Value.ToString());

        GestionCurso gestorCursos = new GestionCurso();

        ECurso curso = gestorCursos.GetCurso(idCurso);

        Session[Constantes.CURSO_SELECCIONADO_PARA_CALIFICAR_EXAMEN] = curso;

        Response.Redirect("~/Vistas/Examen/CalificarExamenTemario.aspx");
    }
    public List <string> GetCursosInscritosSrc(EUsuario usuario, string nombre)
    {
        List <ECurso> cursos        = new List <ECurso>();
        List <string> nombresCursos = new List <string>();

        List <EInscripcionesCursos> inscripciones = db.TablaInscripciones.Where(x => x.NombreUsuario.Equals(usuario.NombreDeUsuario)).ToList();

        foreach (EInscripcionesCursos inscripcion in inscripciones)
        {
            ECurso curso = db.TablaCursos.Where(x => x.Id == inscripcion.IdCurso && x.Nombre.ToLower().Contains(nombre.ToLower())).FirstOrDefault();

            if (curso != null)
            {
                cursos.Add(curso);
            }
        }

        foreach (ECurso curso in cursos)
        {
            nombresCursos.Add(curso.Nombre);
        }

        return(nombresCursos);
    }
Beispiel #24
0
 public Produto(ECurso tipoProduto, int ano)
 {
     Curso = tipoProduto;
     Ano   = ano;
 }
    public void SubirComentario(string paginaContenedora, string contenidoCaja, string idComentarioString)
    {
        int idComentario = Int32.Parse(idComentarioString);

        if (paginaContenedora.Equals("ASP.vistas_cursos_informaciondelcurso_aspx"))
        {
            ECurso   curso   = (ECurso)Session[Constantes.CURSO_SELECCIONADO];
            EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

            EComentario comentario = new EComentario();

            comentario.Emisor = usuario.NombreDeUsuario;

            if (idComentario != 0)
            {
                comentario.IdComentario = idComentario;
            }
            else
            {
                comentario.IdCurso = curso.Id;
            }

            comentario.Comentario = contenidoCaja;
            comentario.FechaEnvio = System.DateTime.Now;
            Base.Insertar(comentario);
            if (comentario.IdComentario != null)
            {
                string nombreReceptor = new DaoNotificacion().buscarNombreReceptor(comentario.IdComentario);
                if (nombreReceptor != usuario.NombreDeUsuario)
                {
                    ENotificacion notificacionComentario = new ENotificacion();
                    notificacionComentario.Estado          = true;
                    notificacionComentario.Fecha           = DateTime.Now;
                    notificacionComentario.Mensaje         = "Tiene un nuevo comentario: " + comentario.Comentario;
                    notificacionComentario.NombreDeUsuario = nombreReceptor;
                    Base.Insertar(notificacionComentario);
                }
            }
        }
        else
        {
            ETema    tema    = (ETema)Session[Constantes.TEMA_SELECCIONADO];
            EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

            EComentario comentario = new EComentario();

            comentario.Emisor = usuario.NombreDeUsuario;


            if (idComentario != 0)
            {
                comentario.IdComentario = idComentario;
            }
            else
            {
                comentario.IdTema = tema.Id;
            }
            comentario.Comentario = contenidoCaja;
            comentario.FechaEnvio = System.DateTime.Now;

            Base.Insertar(comentario);
        }
    }
Beispiel #26
0
    protected void botonCrearCurso_Click(object sender, EventArgs e)
    {
        if (desplegableArea.SelectedItem.Text != "Área del conocimiento")
        {
            ECurso curso = new ECurso();

            EUsuario usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

            curso.Creador = usuario.NombreDeUsuario;
            curso.Area    = desplegableArea.SelectedItem.Text;

            int dia  = Int32.Parse(cajaFechaInicio.Text.Split('/')[0]);
            int mes  = Int32.Parse(cajaFechaInicio.Text.Split('/')[1]);
            int anio = Int32.Parse(cajaFechaInicio.Text.Split('/')[2]);

            DateTime fechaInicio = new DateTime(anio, mes, dia);

            curso.FechaInicio = fechaInicio;

            DateTime fechaActual = DateTime.Now;

            if (fechaInicio > fechaActual)
            {
                curso.Estado = "en_espera";
            }
            else
            {
                curso.Estado = "activo";
            }

            curso.Nombre = cajaTitulo.Text;

            curso.FechaCreacion = fechaActual;
            curso.Puntuacion    = 0;

            if (cajaDescripcion.Text != "")
            {
                curso.Descripcion = cajaDescripcion.Text;
            }
            if (cursoExistente == null)
            {
                bool   validar;
                string codigo;
                do
                {
                    codigo  = Reutilizables.generarCodigoCurso();
                    validar = new GestionCurso().ExisteCodigoCurso(codigo);
                } while (validar != false);

                curso.CodigoInscripcion = codigo;

                Base.Insertar(curso);
                Session[Constantes.CURSO_SELECCIONADO_PARA_EDITAR_TEMAS] = curso;
                Lb_validacion.Visible = false;
                LB_creado.CssClass    = "alertCursoCreado alert-success";
                LB_creado.Text        = " <strong>¡Satisfactorio!</strong> Su curso se ha creado. Él código de su curso es: " + "<strong>" + codigo + "</strong>";
                LB_creado.Visible     = true;
            }
            else
            {
                cursoExistente.Nombre      = curso.Nombre;
                cursoExistente.Descripcion = curso.Descripcion;
                cursoExistente.FechaInicio = curso.FechaInicio;
                Base.Actualizar(cursoExistente);
                Session["actualizando"] = true;
                Lb_validacion.Visible   = false;
                LB_editado.CssClass     = "alertCursoEditado alert-success";
                LB_editado.Visible      = true;
            }
        }
        else
        {
            Lb_validacion.CssClass = "alert alert-danger";
            Lb_validacion.Visible  = true;
        }
    }
Beispiel #27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

        ECurso curso = (ECurso)Session[Constantes.CURSO_SELECCIONADO];


        if (usuario == null)
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }
        else if (usuario != null && usuario.Rol.Equals(Constantes.ROL_ADMIN))
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }
        else
        {
            ETema tema = (ETema)Session[Constantes.TEMA_SELECCIONADO];

            if (tema == null)
            {
                Response.Redirect("~/Vistas/Home.aspx");
            }

            etiquetaTitulo.Text = tema.Titulo;

            LiteralControl informacion = new LiteralControl();
            informacion.Text = tema.Informacion;

            panelContenido.Controls.Add(informacion);


            GestionExamen gestorExamenes = new GestionExamen();

            EExamen examen = (EExamen)gestorExamenes.GetExamen(tema);

            Session[Constantes.EXAMEN_A_REALIZAR] = examen;
            if (examen != null)
            {
                if (!usuario.NombreDeUsuario.Equals(curso.Creador))
                {
                    if (gestorExamenes.GetEjecucion(examen, (EUsuario)Session[Constantes.USUARIO_LOGEADO]) != null)
                    {
                        Label etiquetaExamenRealizado = new Label();
                        etiquetaExamenRealizado.Text = "Ya ha realizado el examen";
                        panelExamen.Controls.Add(etiquetaExamenRealizado);
                    }
                    else
                    {
                        if (examen != null)
                        {
                            if (DateTime.Now < examen.FechaFin)
                            {
                                ASP.controles_examenes_elaboracionexamen_ascx examenARealizar = new ASP.controles_examenes_elaboracionexamen_ascx();
                                panelExamen.Controls.Add(examenARealizar);
                            }
                            else
                            {
                                Label etiquetaTiempo = new Label();
                                etiquetaTiempo.Text = "Ya pasó la fecha y hora establecidas para realizar el examen";
                                panelExamen.Controls.Add(etiquetaTiempo);
                            }
                        }
                    }
                }
            }
        }
    }
    public List <EComentario> GetComentarios(ECurso curso)
    {
        List <EComentario> comentarios = db.TablaComentarios.Where(x => x.IdCurso == curso.Id).OrderBy(x => x.Id).ToList();

        return(comentarios);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Uri        urlAnterior    = Request.UrlReferrer;
        DaoUsuario gestorUsuarios = new DaoUsuario();
        ECurso     curso          = (ECurso)Session[Constantes.CURSO_SELECCIONADO];

        if (curso == null)
        {
            Response.Redirect("~/Vistas/Home.aspx");
        }
        if (DateTime.Now >= curso.FechaInicio)
        {
            curso.Estado = "activo";
            Base.Actualizar(curso);
        }
        Hyperlink_Devolver.NavigateUrl = urlAnterior == null ? "~/Vistas/Home.aspx"
            : urlAnterior.ToString().Contains("InformacionDelCurso.aspx")
            ? "~/Vistas/Buscador/ListaDeResultadosDelBuscadorCursos.aspx"
            : urlAnterior.ToString().Contains("Chat.aspx") ? "~/Vistas/Cursos/ListaDeCursosInscritosDeLaCuenta.aspx"
            : urlAnterior.ToString();
        creador = gestorUsuarios.GetUsuario(curso.Creador);

        usuario = (EUsuario)Session[Constantes.USUARIO_LOGEADO];

        GestionCurso gestorCursos = new GestionCurso();

        panelEstrellas.Style.Add("pointer-events", "none");

        if (curso.Puntuacion != null)
        {
            EstrellasPuntuacion.Calificacion = (int)curso.Puntuacion;
        }
        else
        {
            EstrellasPuntuacion.Calificacion = 0;
        }
        etiquetaTitulo.Text        = curso.Nombre;
        etiquetaNombreUsuario.Text = curso.Creador;
        etiquetaNombre.Text        = creador.PrimerNombre + " " + creador.SegundoNombre + " " + creador.PrimerApellido + " " + creador.SegundoApellido;;
        etiquetaCorreo.Text        = creador.CorreoInstitucional;
        etiquetaArea.Text          = curso.Area;
        campoDescripcion.Text      = curso.Descripcion;
        imagenArea.Width           = 32;
        imagenArea.Height          = 32;
        imagenArea.ImageUrl        = "~/Recursos/Imagenes/IconosAreas/" + curso.Area + ".png";

        if (usuario == null)
        {
            inscripcion = false;
        }
        else
        {
            inscripcion = gestorCursos.IsInscrito(usuario, curso);
        }
        if (usuario != null)
        {
            if (!inscripcion && !creador.NombreDeUsuario.Equals(usuario.NombreDeUsuario))
            {
                botonInbox.Visible               = false;
                CajaComentarios.Visible          = false;
                etiquetaComentarios.Text         = "Debes inscribirte al curso para poder comentar y ver los comentarios";
                EstrellasPuntuacionCurso.Visible = false;
            }
            else
            {
                EPuntuacion puntuacion = gestorCursos.GetPuntuacion(usuario, curso);
                if (puntuacion != null)
                {
                    EstrellasPuntuacionCurso.Calificacion = puntuacion.Puntuacion;
                }
                else
                {
                    EstrellasPuntuacionCurso.Calificacion = 0;
                }
            }
        }


        if (inscripcion || usuario == null || usuario.NombreDeUsuario.Equals(creador.NombreDeUsuario) || curso.Estado.Equals("en_espera"))
        {
            botonInscribirse.Visible = false;
        }

        if (curso.Estado.Equals("en_espera"))
        {
            etiquetaFechaInicio.Visible = true;
            etiquetaFechaInicio.Text    = "Fecha de inicio: " + curso.FechaInicio.ToString("dd/MM/yyyy");
        }

        if (usuario == null || usuario.NombreDeUsuario.Equals(creador.NombreDeUsuario))
        {
            botonInbox.Visible = false;
        }

        if (tablaTemas.Rows.Count == 0)
        {
            Literal sinTemas = new Literal();
            sinTemas.Text = "Este curso no dispone de temas por el momento";
            panelTemas.Controls.Clear();
            panelTemas.Controls.Add(sinTemas);
            panelTemas.Style.Add(HtmlTextWriterStyle.Padding, "50px");
        }
        if (usuario == null || usuario.NombreDeUsuario.Equals(creador.NombreDeUsuario))
        {
            CajaComentarios.Visible          = false;
            etiquetaComentarios.Text         = "Debes inscribirte al curso para poder comentar y ver los comentarios";
            EstrellasPuntuacionCurso.Visible = false;
            botonInbox.Visible       = false;
            botonInscribirse.Visible = false;
        }
        else if (usuario.Rol.Equals(Constantes.ROL_ADMIN))
        {
            botonInscribirse.Visible = false;
        }

        tablaTemas.DataBind();


        if (Session["inscribiendose"] != null && (bool)Session["inscribiendose"])
        {
            MostrarModal();
        }

        if (!IsPostBack)
        {
            Session.Contents.Remove("inscribiendose");
        }
    }
    public List <ETema> GetTemas(ECurso curso)
    {
        List <ETema> temas = db.TablaTemas.Where(x => x.IdCurso == curso.Id).OrderBy(x => x.Id).ToList();

        return(temas);
    }