Esempio n. 1
0
        public ActionResult ResponderPregunta(int id)
        {
            if (!Request.IsAuthenticated)
            {
                return(RedirectToAction("Ingresar", "Home", new { returnUrl = Request.Url.ToString() }));
            }

            Pregunta pregunta = this.PreguntaService.GetById(Convert.ToInt32(id));

            if (pregunta == null)
            {
                return(HttpNotFound());
            }

            var respuestaWrapper = new RespuestaWrapper
            {
                Clase           = pregunta.Clase != null ? pregunta.Clase.Nombre : string.Empty,
                Tema            = pregunta.Tema != null ? pregunta.Tema.Nombre : string.Empty,
                IdPregunta      = pregunta.IdPregunta,
                Pregunta        = pregunta.Pregunta1,
                Nro             = pregunta.Nro,
                DisponibleHasta = pregunta.FechaDisponibleHasta
            };

            return(View(respuestaWrapper));
        }
Esempio n. 2
0
 public int GuardarRespuesta(RespuestaWrapper respuestaAlumno)
 {
     return(this.RespuestaRepository.Insert(new RespuestaAlumno
     {
         IdPregunta = respuestaAlumno.IdPregunta,
         IdAlumno = UserCache.IdUsuario,
         FechaHoraRespuesta = DateTime.Now,
         Respuesta = respuestaAlumno.Respuesta
     }));
 }
Esempio n. 3
0
        public static void SendMailRespuesta(Pregunta pregunta, RespuestaWrapper respuestaAlumno, int orden)
        {
            var emailRespuesta = new EmailsManager
            {
                recipients = "*****@*****.**",
                subject    = string.Format("Respuesta a Pregunta {0} - {1} - {2}", pregunta.Nro, orden, UserCache.Nombre),
                body       = EmailsBodyGenerator.GetRespuestaPreguntaBody(pregunta, respuestaAlumno, orden)
            };

            emailRespuesta.SendEmail();
        }
Esempio n. 4
0
        public ActionResult ResponderPregunta([Bind(Include = "IdPregunta,Respuesta")] RespuestaWrapper respuestaAlumno)
        {
            using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    Pregunta pregunta = this.PreguntaService.GetById(respuestaAlumno.IdPregunta);

                    var respuestaWrapper = new RespuestaWrapper
                    {
                        Clase           = pregunta.Clase != null ? pregunta.Clase.Nombre : string.Empty,
                        Tema            = pregunta.Tema != null ? pregunta.Tema.Nombre : string.Empty,
                        IdPregunta      = pregunta.IdPregunta,
                        Pregunta        = pregunta.Pregunta1,
                        DisponibleHasta = pregunta.FechaDisponibleHasta,
                        Respuesta       = respuestaAlumno.Respuesta
                    };

                    if (respuestaAlumno.Respuesta == null)
                    {
                        return(View("ResponderPregunta", respuestaWrapper));
                    }

                    if (pregunta.FechaDisponibleHasta < DateTime.Now)
                    {
                        TempData["messageERROR"] = "Se ha vencido el plazo para responder a esta pregunta.";

                        return(View("ResponderPregunta", respuestaWrapper));
                    }

                    int orden = this.RespuestaService.GuardarRespuesta(respuestaAlumno);

                    EmailService.SendMailRespuesta(pregunta, respuestaAlumno, orden);

                    transactionScope.Complete();

                    return(RedirectToAction("Preguntas", new { estadoPreguntas = -1 }));
                }
                catch (Exception ex)
                {
                    TempData["messageERROR"] = "Se produjo un error en la aplicación. " + ex.Message;

                    transactionScope.Dispose();

                    return(View("ResponderPregunta", respuestaAlumno));
                }
            }
        }
Esempio n. 5
0
        public static string GetRespuestaPreguntaBody(Pregunta pregunta, RespuestaWrapper respuestaAlumno, int orden)
        {
            var body = new StringBuilder();

            body.Append("<html><head><title>Preguntas UNLaM - Respuesta a pregunta</title>");
            body.Append("<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'></head>");
            body.Append("<body topmargin='0' leftmargin='0' bgcolor='#196a70'>");
            body.Append("<table align='center' cellpadding='4' cellspacing='4' style='background-color: #196a70; background-position: center top; width: 800px; border: thin groove #d4f0ff;'>");
            body.Append("<tr><td><table align='center' width='800' cellpadding='4' cellspacing='4'></td></tr>");
            body.Append("<tr><td><label style='font-family: Arial; font-size: small; font-weight: bold; color: #D4F0FF; '>Estimado/a, un alumno ha respondido la siguiente pregunta: </label></td></tr>");
            body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Pregunta:</b>&nbsp;{0}</td></tr>", pregunta.Pregunta1));
            body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Alumno:</b>&nbsp;{0}</td></tr>", UserCache.Nombre));
            body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Orden:</b>&nbsp;{0}</td></tr>", orden));
            body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Respuesta:</b>&nbsp;{0}</td></tr>", respuestaAlumno.Respuesta));
            body.Append("<tr><td><a style='color: #D4F0FF' title='http://localhost:6068/Profesores/EvalRespuestas?idPregunta=" + pregunta.IdPregunta + "&estadoPreguntas=-1' href='http://localhost:6068/Profesores/EvalRespuestas?idPregunta=" + pregunta.IdPregunta + "&estadoPreguntas=-1' target='_blank'>http://localhost:6068/Profesores/EvalRespuestas?idPregunta=" + pregunta.IdPregunta + "&estadoPreguntas=-1</a></td></tr>");
            body.Append("<tr><td><label style='color: #D4F0FF'>Atentamente,</label></td></tr>");
            body.Append("<tr><td><label style='color: #D4F0FF; font-size: 20px;'><b><i>El Equipo de Preguntas UNLaM</i></b></label></td></tr>");
            body.Append("</table></td></tr></table></body></html>");

            return(body.ToString());
        }