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)); }
public int GuardarRespuesta(RespuestaWrapper respuestaAlumno) { return(this.RespuestaRepository.Insert(new RespuestaAlumno { IdPregunta = respuestaAlumno.IdPregunta, IdAlumno = UserCache.IdUsuario, FechaHoraRespuesta = DateTime.Now, Respuesta = respuestaAlumno.Respuesta })); }
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(); }
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)); } } }
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> {0}</td></tr>", pregunta.Pregunta1)); body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Alumno:</b> {0}</td></tr>", UserCache.Nombre)); body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Orden:</b> {0}</td></tr>", orden)); body.Append(string.Format("<tr><td><label style='color: #D4F0FF'><b>Respuesta:</b> {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()); }