コード例 #1
0
        public void EnviarEmailRespuestaDelAlumno(Pregunta pregunta, string resp, int idAlum)
        {
            Alumno          alumno          = bdContexto.Alumnoes.Find(idAlum);
            Pregunta        preg            = bdContexto.Preguntas.Find(pregunta.IdPregunta);
            RespuestaAlumno respuestaAlumno = bdContexto.RespuestaAlumnoes.SingleOrDefault(p => p.IdPregunta == preg.IdPregunta &&
                                                                                           p.IdAlumno == alumno.IdAlumno);
            Profesor    profesor = bdContexto.Profesors.Find(preg.IdProfesorCreacion);
            string      email    = profesor.Email;
            MailMessage msj      = new MailMessage();

            msj.To.Add("*****@*****.**");
            msj.Bcc.Add("*****@*****.**");
            msj.Bcc.Add("*****@*****.**");
            string asunto = "Asunto:Respuesta a Pregunta " + preg.Nro + " Orden: " + respuestaAlumno.Orden + " Apellido " + alumno.Apellido;

            msj.Subject         = asunto;
            msj.SubjectEncoding = System.Text.Encoding.UTF8;
            string evaluarPregunta = ("http://*****:*****@gmail.com");
            SmtpClient cli = new SmtpClient();

            cli.Credentials = new NetworkCredential("*****@*****.**", "calificapp12345678");
            cli.Port        = 587;
            cli.EnableSsl   = true;
            cli.Host        = "smtp.gmail.com";
            cli.Send(msj);
        }
コード例 #2
0
        public void EnviarEmailMejorRespuesta(RespuestaAlumno respuestaPorId)
        {
            Alumno   alumno   = ctx.Alumno.Find(respuestaPorId.IdAlumno);
            Pregunta pregunta = ctx.Pregunta.Find(respuestaPorId.IdPregunta);

            System.Net.Mail.MailMessage mensaje = new System.Net.Mail.MailMessage();
            string email = alumno.Email;

            mensaje.To.Add(email);
            string asunto = "Su respuesta ha sido marcada como la mejor. ¡Felicitaciones!";

            mensaje.Subject         = asunto;
            mensaje.SubjectEncoding = System.Text.Encoding.UTF8;

            int    alumnoId       = respuestaPorId.IdAlumno;
            string preguntaTxt    = pregunta.Pregunta1;
            string respuesta      = respuestaPorId.Respuesta;
            string linkRespuesta  = ("http://*****:*****@gmail.com");

            System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();
            cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "unlam2018");
            cliente.Port        = 587;
            cliente.EnableSsl   = true;
            cliente.Host        = "smtp.gmail.com";

            cliente.Send(mensaje);
        }
コード例 #3
0
        public static void CorregirRespuesta(int idRespuesta, int resultadoEvaluacion, int idProfesor)
        {
            using (db = new TP_20191CEntities())
            {
                RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Profesor").Include("ResultadoEvaluacion").Include("Alumno") where r.IdRespuestaAlumno == idRespuesta select r).FirstOrDefault();

                int cantidadRespuestasCorrectas = (from r in db.RespuestaAlumnoes where r.IdPregunta == respuesta.IdPregunta && r.IdResultadoEvaluacion == 1 select r).Count();

                // Setea 1, 2 o 3 en evaluación, profesor que corrigió, cantRespuestasCorrectas y FechaHoraEvaluacion
                respuesta.IdResultadoEvaluacion             = resultadoEvaluacion;
                respuesta.IdProfesorEvaluador               = idProfesor;
                respuesta.RespuestasCorrectasHastaElMomento = cantidadRespuestasCorrectas;
                respuesta.FechaHoraEvaluacion               = DateTime.Now;

                long puntos = 0;
                if (resultadoEvaluacion != 3) // Si no es incorrecta
                {
                    puntos = CalcularPuntosDeRespuesta(respuesta);
                }
                respuesta.Puntos = puntos;

                db.SaveChanges();

                // Actualiza datos en la tabla Alumnos
                ActualizarPuntosTotales(respuesta.IdAlumno, puntos);
                ActualizarCantidadDeRespuestas(respuesta.IdAlumno, resultadoEvaluacion);
            }
        }
コード例 #4
0
        public ActionResult MejorRespuesta(int idRespuesta)
        {
            if (!Request.IsAuthenticated)
            {
                return(RedirectToAction("Ingresar", "Home", new { returnUrl = Request.Url.ToString() }));
            }

            using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    this.RespuestaService.SetMejorRespuesta(idRespuesta);

                    RespuestaAlumno respuesta = this.RespuestaService.Get(idRespuesta);

                    EmailService.SendMailMejorRespuesta(respuesta);

                    transactionScope.Complete();

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

                    transactionScope.Dispose();

                    return(View("Preguntas"));
                }
            }
        }
コード例 #5
0
        public ActionResult VerRespuesta(int IdRespuesta)
        {
            RespuestaAlumno respuesta = respuestaServide.ObtenerRespuestaPorIdRespuesta(IdRespuesta);
            Pregunta        pregunta  = preguntaService.ObtenerUnaPreguntaId(respuesta.IdPregunta);

            TempData["Respuesta"] = respuesta.Respuesta;
            return(View(pregunta));
        }
コード例 #6
0
 public static RespuestaAlumno GetRespuesta(int idRespuesta)
 {
     using (db = new TP_20191CEntities())
     {
         RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Profesor").Include("ResultadoEvaluacion") where r.IdRespuestaAlumno == idRespuesta select r).FirstOrDefault();
         return(respuesta);
     }
 }
コード例 #7
0
        public static long CalcularPuntosMejorRespuesta(RespuestaAlumno respuesta)
        {
            long puntajeMax       = int.Parse(WebConfigurationManager.AppSettings["PuntajeMaximoPorRespuestaCorrecta"]);
            long cupo             = int.Parse(WebConfigurationManager.AppSettings["CupoMaximoRespuestasCorrectas"]);
            long puntajeRespuesta = respuesta.Puntos.Value + (puntajeMax / 2);

            return(puntajeRespuesta);
        }
コード例 #8
0
        public ActionResult MejorRespuesta(int id, int idDos)
        {
            Pregunta        PreguntaPorId  = profesorServicio.BuscarPreguntaPorId(id);
            RespuestaAlumno respuestaPorId = profesorServicio.BuscarRespuestaPorId(idDos);

            profesorServicio.ActivarMejorRespuesta(respuestaPorId);
            alumnoServicio.EnviarEmailMejorRespuesta(respuestaPorId);
            return(RedirectToAction("EvaluarPregunta", new { id = PreguntaPorId.IdPregunta }));
        }
コード例 #9
0
        public ActionResult EvaluarRespuestaMal(int id, int idDos)
        {
            int             idProfesor     = (int)Session["idLogueado"];
            Pregunta        PreguntaPorId  = profesorServicio.BuscarPreguntaPorId(id);
            RespuestaAlumno respuestaPorId = profesorServicio.BuscarRespuestaPorId(idDos);

            alumnoServicio.EvaluarPreguntaMal(idProfesor, respuestaPorId);
            alumnoServicio.EnviarEmailEvaluacion(idProfesor, respuestaPorId);
            return(RedirectToAction("EvaluarPregunta", new { id = PreguntaPorId.IdPregunta }));
        }
コード例 #10
0
        public ActionResult VerRespuesta(int id)
        {
            MyContext       ctx       = new MyContext();
            RespuestaAlumno respuesta = ctx.RespuestaAlumno.Find(id);
            var             idAlumno  = respuesta.Alumno.IdAlumno;
            Alumno          alum      = alumnoServicio.buscarAlumnoPorId(idAlumno);

            ViewBag.Respuesta = respuesta;
            return(View(alum));
        }
コード例 #11
0
        public PreguntaWrapper GetPreguntaWrapperByPregunta(Pregunta pregunta)
        {
            var preguntaWrapper = new PreguntaWrapper
            {
                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,
                DisponibleDesde = pregunta.FechaDisponibleDesde,
                DisponibleHasta = pregunta.FechaDisponibleHasta,
                YaRespondida    = pregunta.RespuestaAlumno.Any(x => x.IdAlumno == UserCache.IdUsuario),
                PlazoVencido    = pregunta.FechaDisponibleHasta < DateTime.Now
            };

            if (preguntaWrapper.YaRespondida)
            {
                RespuestaAlumno respuestaAlumno = pregunta.RespuestaAlumno.FirstOrDefault(x => x.IdAlumno == UserCache.IdUsuario);

                if (respuestaAlumno != null)
                {
                    switch (respuestaAlumno.IdResultadoEvaluacion)
                    {
                    case (int)EnumEstadoPreguntaFiltro.Correcta:
                        preguntaWrapper.ResultadoCorreccion = string.Format("Correcta | {0}° | {1}pts ", respuestaAlumno.Orden, respuestaAlumno.Puntos);
                        if (respuestaAlumno.MejorRespuesta)
                        {
                            preguntaWrapper.ResultadoCorreccion = string.Format("{0} | ¡Mejor Respuesta!", preguntaWrapper.ResultadoCorreccion);
                        }
                        break;

                    case (int)EnumEstadoPreguntaFiltro.Regular:
                        preguntaWrapper.ResultadoCorreccion = string.Format("Regular | {0}° | {1}pts", respuestaAlumno.Orden, respuestaAlumno.Puntos);
                        break;

                    case (int)EnumEstadoPreguntaFiltro.Mal:
                        preguntaWrapper.ResultadoCorreccion = "Mal";
                        break;

                    default:
                        preguntaWrapper.ResultadoCorreccion = "Corrección Pendiente";
                        break;
                    }

                    if (respuestaAlumno.IdResultadoEvaluacion != null)
                    {
                        preguntaWrapper.EstadoCorreccion = (EnumEstadoPreguntaFiltro)respuestaAlumno.IdResultadoEvaluacion;
                    }

                    preguntaWrapper.Respuesta = respuestaAlumno.Respuesta;
                }
            }

            return(preguntaWrapper);
        }
コード例 #12
0
        public static void SendMailCorreccion(int idResultadoEval, RespuestaAlumno respuesta)
        {
            var emailRespuesta = new EmailsManager
            {
                recipients = "*****@*****.**",
                subject    = string.Format("Su respuesta fue calificada como {0}", ((EnumEstadoPreguntaFiltro)idResultadoEval).ToString()),
                body       = EmailsBodyGenerator.GetCorreccionBody(idResultadoEval, respuesta)
            };

            emailRespuesta.SendEmail();
        }
コード例 #13
0
        public static void SendMailMejorRespuesta(RespuestaAlumno respuesta)
        {
            var emailRespuesta = new EmailsManager
            {
                recipients = "*****@*****.**",
                subject    = "Su respuesta ha sido marcada como la mejor. ¡Felicitaciones!",
                body       = EmailsBodyGenerator.GetMejorRespuestaBody(respuesta)
            };

            emailRespuesta.SendEmail();
        }
コード例 #14
0
        public void EvaluarPreguntaMal(int idProfesor, RespuestaAlumno respuestaPorId)
        {
            int             idrespuesta = respuestaPorId.IdRespuestaAlumno;
            RespuestaAlumno respuesta   = ctx.RespuestaAlumno.Find(idrespuesta);

            respuesta.Puntos = 0;

            respuesta.FechaHoraEvaluacion   = DateTime.Now;
            respuesta.IdProfesorEvaluador   = idProfesor;
            respuesta.IdResultadoEvaluacion = 3;

            ctx.SaveChanges();
        }
コード例 #15
0
        public void AgregarRespuesta(int idPregunta, String respuesta, int idAlumno)
        {
            RespuestaAlumno respuestaAlumno = new RespuestaAlumno();

            respuestaAlumno.IdPregunta         = idPregunta;
            respuestaAlumno.IdAlumno           = idAlumno;
            respuestaAlumno.FechaHoraRespuesta = DateTime.Now;
            respuestaAlumno.Respuesta          = respuesta;
            respuestaAlumno.Orden = bdContexto.RespuestaAlumnoes.Where(r => r.IdPregunta == idPregunta).ToList().Count + 1;

            bdContexto.RespuestaAlumnoes.Add(respuestaAlumno);

            bdContexto.SaveChanges();
        }
コード例 #16
0
        public RespuestaEvaluarWrapper GetRespuestaWrapperByRespuesta(RespuestaAlumno respuesta)
        {
            var respuestaWrapper = new RespuestaEvaluarWrapper
            {
                IdRespuestaAlumno  = respuesta.IdRespuestaAlumno,
                Alumno             = string.Format("{0} {1}", respuesta.Alumno.Nombre, respuesta.Alumno.Apellido),
                FechaHoraRespuesta = respuesta.FechaHoraRespuesta,
                Respuesta          = respuesta.Respuesta,
                MejorRespuesta     = respuesta.MejorRespuesta,
                EstadoCorreccion   = respuesta.IdResultadoEvaluacion != null ? (EnumEstadoPreguntaFiltro)respuesta.IdResultadoEvaluacion : (EnumEstadoPreguntaFiltro?)null
            };

            return(respuestaWrapper);
        }
コード例 #17
0
 public ActionResult ElegirMejorRespuesta(int idRespuesta)
 {
     if (!CheckSession())
     {
         return(RedirectToAction("Ingresar", "Home"));
     }
     else
     {
         int idProfesor = Convert.ToInt32(Session["UserSession"]);
         PreguntaService.ElegirMejorRespuesta(idRespuesta, idProfesor);
         RespuestaAlumno resp = PreguntaService.GetRespuesta(idRespuesta);
         return(RedirectToAction("EvaluarRespuestas", new { idPregunta = resp.IdPregunta, filtro = -1 }));
     }
 }
コード例 #18
0
        public void GuardarRespuesta(Pregunta preg, string respuesta, int idAlumno)
        {
            RespuestaAlumno respuestaAlumno = new RespuestaAlumno();

            respuestaAlumno.IdPregunta         = preg.IdPregunta;
            respuestaAlumno.IdAlumno           = idAlumno;
            respuestaAlumno.FechaHoraRespuesta = DateTime.Now;
            respuestaAlumno.Respuesta          = respuesta;
            int orden = OrdenRespuesta(preg.IdPregunta);

            respuestaAlumno.Orden = orden + 1;
            ctx.RespuestaAlumno.Add(respuestaAlumno);
            ctx.SaveChanges();
        }
コード例 #19
0
 public static Boolean TieneRespuestas(int idpregunta)
 {
     using (db = new TP_20191CEntities())
     {
         RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Profesor").Include("ResultadoEvaluacion") where r.IdPregunta == idpregunta select r).FirstOrDefault();
         if (respuesta != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
コード例 #20
0
        public void ActivarMejorRespuesta(RespuestaAlumno respuestaPorId)
        {
            int             idrespuesta = respuestaPorId.IdRespuestaAlumno;
            RespuestaAlumno respuesta   = ctx.RespuestaAlumno.Find(idrespuesta);
            Alumno          alumno      = ctx.Alumno.Find(respuesta.IdAlumno);

            respuesta.MejorRespuesta = true;
            int PuntosTotales = (int)respuesta.Puntos + 500;

            respuesta.Puntos = PuntosTotales;
            int PuntajeMaximoPorRespuestaCorrecta = Convert.ToInt32(WebConfigurationManager.AppSettings["PuntajeMaximoPorRespuestaCorrecta"]);

            alumno.PuntosTotales += (PuntajeMaximoPorRespuestaCorrecta / 2);
            ctx.SaveChanges();
        }
コード例 #21
0
        public static void ElegirMejorRespuesta(int idRespuesta, int idProfesor)
        {
            using (db = new TP_20191CEntities())
            {
                RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Alumno").Include("Pregunta") where r.IdRespuestaAlumno == idRespuesta select r).FirstOrDefault();
                respuesta.MejorRespuesta = true;
                NotifyAlMejorRsta(respuesta, idProfesor);

                long puntos = CalcularPuntosMejorRespuesta(respuesta);
                respuesta.Puntos = puntos;

                db.SaveChanges();
                // Actualiza datos en la tabla Alumnos
                ActualizarPuntosTotales(respuesta.IdAlumno, puntos);
                ActualizarCantidadDeRespuestas(respuesta.IdAlumno, 4); // Se utiliza 4 para mejor respuesta
            }
        }
コード例 #22
0
        public void EvaluarPreguntaCorrecta(int idProfesor, RespuestaAlumno respuestaPorId)
        {
            int PuntajeMaximoPorRespuestaCorrecta = Convert.ToInt32(WebConfigurationManager.AppSettings["PuntajeMaximoPorRespuestaCorrecta"]);
            int CupoMaximoRespuestasCorrectas     = Convert.ToInt32(WebConfigurationManager.AppSettings["CupoMaximoRespuestasCorrectas"]);


            int             idrespuesta = respuestaPorId.IdRespuestaAlumno;
            RespuestaAlumno respuesta   = ctx.RespuestaAlumno.Find(idrespuesta);

            int    idAlumno = respuestaPorId.IdAlumno;
            Alumno alumno   = ctx.Alumno.Find(idAlumno);

            int idPre = respuestaPorId.IdPregunta;

            List <RespuestaAlumno> RespuestasCorrectasHastaElMomento = (from r in ctx.RespuestaAlumno where r.IdPregunta == idPre && r.IdResultadoEvaluacion == 1 select r).ToList();

            var SumaRespuestasCorrectasHastaElMomento = RespuestasCorrectasHastaElMomento.Select(x => x.IdResultadoEvaluacion).Sum();

            respuesta.RespuestasCorrectasHastaElMomento = SumaRespuestasCorrectasHastaElMomento;

            int respCorr = (int)SumaRespuestasCorrectasHastaElMomento;

            int puntajeRespuesta = PuntajeMaximoPorRespuestaCorrecta - (1000 / CupoMaximoRespuestasCorrectas * (respCorr));


            if (puntajeRespuesta >= 0)
            {
                respuesta.Puntos = puntajeRespuesta;

                int puntosTotalesSumandos = (int)alumno.PuntosTotales + puntajeRespuesta;
                alumno.PuntosTotales = puntosTotalesSumandos;
            }
            else
            {
                respuesta.Puntos = 100;
                int puntosTotalesSumandos = (int)alumno.PuntosTotales + 100;
                alumno.PuntosTotales = puntosTotalesSumandos;
            }

            respuesta.FechaHoraEvaluacion   = DateTime.Now;
            respuesta.IdProfesorEvaluador   = idProfesor;
            respuesta.IdResultadoEvaluacion = 1;

            ctx.SaveChanges();
        }
コード例 #23
0
        public static void SendRespuestaMail(RespuestaAlumno ra)
        {
            var message = new MailMessage();
            var al      = (from a in db.Alumnoes where a.IdAlumno == ra.IdAlumno select a).FirstOrDefault();

            message.From = new MailAddress(al.Email);
            var pro = (from p in db.Profesors select p.Email).ToList();

            foreach (var profesorMail in pro)
            {
                message.To.Add(new MailAddress(profesorMail));
            }
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            var emailSubject = "Respuesta a Pregunta " + (ra.IdPregunta).ToString() + "-" + (ra.Orden).ToString() + "-" + al.Apellido;

            message.Subject = emailSubject;
            var pr        = (from p in db.Preguntas where p.IdPregunta == ra.IdPregunta select p).FirstOrDefault();
            var urlActual = (HttpContext.Current.Request.Url).ToString();
            var urlToMail = urlActual.Replace(("/Alumno/ResponderPregunta/" + (ra.IdPregunta).ToString())
                                              , ("/Profesor/EvaluarRespuestas?idPregunta=" + (ra.IdPregunta).ToString() + "&filtro=-1"));

            message.Body = "Pregunta: " + pr.Pregunta1
                           + "<br>Alumno: " + al.Nombre + al.Apellido
                           + "<br>Orden: " + (ra.Orden).ToString()
                           + "<br>Respuesta: " + ra.Respuesta
                           + "<br>Evaluar: <a href=\"" + urlToMail + "\">Link a respuesta</a>";
            message.IsBodyHtml = true;
            using (var smtp1 = new SmtpClient())
            {
                var credential1 = new NetworkCredential
                {
                    UserName = "******",
                    Password = "******"
                };
                smtp1.Credentials = credential1;
                smtp1.Host        = "smtp.gmail.com";
                smtp1.Port        = 587;
                smtp1.EnableSsl   = true;
                smtp1.Send(message);
            }
        }
コード例 #24
0
 public static void AddRespuesta(RespuestaAlumno ra, int?idPregunta, int idAlumno)
 {
     using (db = new TP_20191CEntities())
     {
         ra.IdAlumno           = idAlumno;
         ra.IdPregunta         = Convert.ToInt32(idPregunta);
         ra.FechaHoraRespuesta = DateTime.Now;
         ra.Orden = Convert.ToInt32((from Ra in db.RespuestaAlumnoes
                                     where Ra.IdPregunta == idPregunta
                                     orderby Ra.Orden descending
                                     select Ra.Orden).FirstOrDefault()) + 1;
         ra.MejorRespuesta = false;
         var final = ra;
         db.RespuestaAlumnoes.Add(ra);
         db.SaveChanges();
         SendRespuestaMail(ra);
     }
 }
コード例 #25
0
        public void EvaluarRespuesta(int idPregunta, int idRespuesta, int idResultadoEval)
        {
            int puntajeMaximoPorRespuestaCorrecta = Convert.ToInt32(WebConfigurationManager.AppSettings["PuntajeMaximoPorRespuestaCorrecta"]);
            int cupoMaximoRespuestasCorrectas     = Convert.ToInt32(WebConfigurationManager.AppSettings["CupoMaximoRespuestasCorrectas"]);

            int cantidadRespuestasCorrectas = this.RespuestaRepository.GetByIdPregunta(idPregunta);

            long puntajeMinimo = puntajeMaximoPorRespuestaCorrecta / cupoMaximoRespuestasCorrectas;

            long puntajeRespuesta = 0;

            if (idResultadoEval == (int)EnumEstadoPreguntaFiltro.Correcta)
            {
                puntajeRespuesta = puntajeMaximoPorRespuestaCorrecta - (puntajeMaximoPorRespuestaCorrecta / 10 * (cantidadRespuestasCorrectas));

                if (puntajeRespuesta <= 0)
                {
                    puntajeRespuesta = puntajeMinimo;
                }
            }
            else if (idResultadoEval == (int)EnumEstadoPreguntaFiltro.Regular)
            {
                puntajeRespuesta = (puntajeMaximoPorRespuestaCorrecta - (puntajeMaximoPorRespuestaCorrecta / cupoMaximoRespuestasCorrectas * (cantidadRespuestasCorrectas))) / 2;

                if (puntajeRespuesta <= 0)
                {
                    puntajeRespuesta = puntajeMinimo / 2;
                }
            }

            var respuestaAlumno = new RespuestaAlumno
            {
                IdRespuestaAlumno                 = idRespuesta,
                IdProfesorEvaluador               = UserCache.IdUsuario,
                FechaHoraEvaluacion               = DateTime.Now,
                IdResultadoEvaluacion             = idResultadoEval,
                RespuestasCorrectasHastaElMomento = cantidadRespuestasCorrectas,
                Puntos         = puntajeRespuesta,
                MejorRespuesta = false
            };

            this.RespuestaRepository.UpdateResultadoEval(respuestaAlumno);
        }
コード例 #26
0
        public static string GetCorreccionBody(int idResultadoEval, RespuestaAlumno respuesta)
        {
            var body = new StringBuilder();

            body.Append("<html><head><title>Preguntas UNLaM - Correccion de 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>", respuesta.Pregunta.Pregunta1));
            body.Append("<tr><td><label style='color: #D4F0FF'>Su respuesta:</label>&nbsp;<a style='color: #D4F0FF' title='http://localhost:6068/Alumnos/VerRespuesta/" + respuesta.IdPregunta + "' href='http://localhost:6068/Alumnos/VerRespuesta/" + respuesta.IdPregunta + "' target='_blank'>http://localhost:6068/Alumnos/VerRespuesta/" + respuesta.IdPregunta + "</a></td></tr>");
            body.Append("<tr><td><label style='color: #D4F0FF'>Posiciones:</label>&nbsp;<a style='color: #D4F0FF' title='http://localhost:6068/Alumnos/HomeAlumnos' href='http://localhost:6068/Alumnos/HomeAlumnos' target='_blank'>http://localhost:6068/Alumnos/HomeAlumnos</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());
        }
コード例 #27
0
        public void EnviarEmailRespuestaAlumno(Pregunta preg, string respuesta, int idAlumno)
        {
            MyContext ctx      = new MyContext();
            Alumno    alumno   = ctx.Alumno.Find(idAlumno);
            Pregunta  pregunta = ctx.Pregunta.Find(preg.IdPregunta);

            RespuestaAlumno respuestaAlumno = ctx.RespuestaAlumno.SingleOrDefault(x => x.IdPregunta == pregunta.IdPregunta && x.IdAlumno == alumno.IdAlumno);
            Profesor        profe           = ctx.Profesor.Find(pregunta.IdProfesorCreacion);


            //string email = profe.Email;
            //List<string> listaEmailsProfesores = (from p in ctx.Profesor select p.Email).ToList();

            System.Net.Mail.MailMessage mensaje = new System.Net.Mail.MailMessage();

            mensaje.To.Add("*****@*****.**");
            mensaje.Bcc.Add("*****@*****.**");
            mensaje.Bcc.Add("*****@*****.**");


            string asunto = "Respuesta a Pregunta " + pregunta.Nro + " Orden: " + respuestaAlumno.Orden + " Apellido " + alumno.Apellido;

            mensaje.Subject         = asunto;
            mensaje.SubjectEncoding = System.Text.Encoding.UTF8;


            string evaluarPregunta = ("http://*****:*****@gmail.com");

            System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();
            cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "unlam2018");
            cliente.Port        = 587;
            cliente.EnableSsl   = true;
            cliente.Host        = "smtp.gmail.com";

            cliente.Send(mensaje);
        }
コード例 #28
0
        public static long CalcularPuntosDeRespuesta(RespuestaAlumno respuesta)
        {
            long puntajeMax       = int.Parse(WebConfigurationManager.AppSettings["PuntajeMaximoPorRespuestaCorrecta"]);
            long cupo             = int.Parse(WebConfigurationManager.AppSettings["CupoMaximoRespuestasCorrectas"]);
            long puntajeMinimo    = puntajeMax / cupo;
            long puntajeRespuesta = puntajeMax - (puntajeMinimo * respuesta.RespuestasCorrectasHastaElMomento.Value);

            if (respuesta.IdResultadoEvaluacion == 2) // Regular
            {
                puntajeMinimo    /= 2;
                puntajeRespuesta /= 2;
            }

            if (puntajeRespuesta <= puntajeMinimo)
            {
                return(puntajeMinimo);
            }

            return(puntajeRespuesta);
        }
コード例 #29
0
        public static void NotifyAlMejorRsta(RespuestaAlumno rstaAl, int idProfesor)
        {
            var message = new MailMessage();
            var al      = (from a in db.Alumnoes where a.IdAlumno == rstaAl.IdAlumno select a).FirstOrDefault();
            var pro     = (from p in db.Profesors where p.IdProfesor == idProfesor select p).FirstOrDefault();

            message.From = new MailAddress(pro.Email);
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.To.Add(new MailAddress("*****@*****.**"));
            message.Subject = "Su Respuesta ha sido marcada como la mejor, Felicitaciones!";
            var urlActual1 = (HttpContext.Current.Request.Url).ToString();
            var urlToMail1 = urlActual1.Replace(("/Profesor/ElegirMejorRespuesta?idRespuesta=" + (rstaAl.IdRespuestaAlumno).ToString())
                                                , ("/Alumno/VerRespuesta/" + (rstaAl.IdPregunta).ToString()));
            var urlToPos = urlToMail1.Replace(("/Alumno/VerRespuesta/" + (rstaAl.IdPregunta).ToString())
                                              , "/Alumno/");
            var pr = (from p in db.Preguntas where p.IdPregunta == rstaAl.IdPregunta select p).FirstOrDefault();

            message.Body = "Su respuesta ha sido marcada como la mejor."
                           + "<br>Pregunta: " + pr.Pregunta1
                           + "<br>Respuesta: " + rstaAl.Respuesta
                           + "<br>Posiciones: <a href=\"" + urlToPos + "\">Link a pocisiones</a>"
                           + "<br>Link: <a href=\"" + urlToMail1 + "\">Link a respuesta</a>"
                           + "<br>¡Felicitaciones!";
            message.IsBodyHtml = true;
            using (var smtp1 = new SmtpClient())
            {
                var credential1 = new NetworkCredential
                {
                    UserName = "******",
                    Password = "******"
                };
                smtp1.Credentials = credential1;
                smtp1.Host        = "smtp.gmail.com";
                smtp1.Port        = 587;
                smtp1.EnableSsl   = true;
                smtp1.Send(message);
            }
        }
コード例 #30
0
 public ActionResult ResponderPregunta(int?idPregunta, RespuestaAlumno ra)
 {
     if (!CheckSession())
     {
         return(RedirectToAction("Ingresar", "Home"));
     }
     else
     {
         if (ModelState.IsValid)
         {
             int idAlumno = Convert.ToInt32(Session["UserSession"]);
             PreguntaService.AddRespuesta(ra, idPregunta, idAlumno);
             return(RedirectToAction("Preguntas"));
         }
         else
         {
             ViewBag.PreguntaAResponder = PreguntaService.GetPregunta(idPregunta);
             return(View(ra));
         }
     }
 }