예제 #1
0
        public IHttpActionResult getRespuestaByMWCRHC(int idOrigen, int idMWCR, int idDDS, int idHC)
        {
            bool dds = (idDDS == 1) ? true : false;

            var respuestas = db.Respuestas
                             .Where(x => (x.IdOrigenRespuesta == idMWCR))
                             .Select(x => new RespuestaView
            {
                Id                  = x.Id,
                IdPregunta          = x.IdPregunta,
                IdOrigenRespuesta   = x.IdOrigenRespuesta,
                Solucion            = x.Solucion,
                TotalSolucion       = db.Respuestas.Where(p => (p.IdOrigenRespuesta == idMWCR)).Count(),
                TotalSi             = db.Respuestas.Where(p => (p.Solucion == true) && (p.IdOrigenRespuesta == idMWCR)).Count(),
                TotalNo             = db.Respuestas.Where(p => (p.Solucion == false) && (p.IdOrigenRespuesta == idMWCR)).Count(),
                PorcentajeSi        = db.Respuestas.Where(p => (p.Solucion == true) && (p.IdOrigenRespuesta == idMWCR)).Count() * 100 / db.Respuestas.Where(p => (p.IdOrigenRespuesta == idMWCR)).Count(),
                PorcentajeNo        = db.Respuestas.Where(p => (p.Solucion == false) && (p.IdOrigenRespuesta == idMWCR)).Count() * 100 / db.Respuestas.Where(p => (p.IdOrigenRespuesta == idMWCR)).Count(),
                Fecha               = x.Fecha,
                Comentario          = x.Comentario,
                DescripcionPregunta = db.Preguntas.Where(p => (p.Id == x.IdPregunta)).Select(p => (p.Interrogante)).FirstOrDefault(),
                RespuestaBy         = db.Personas.Where(p => (p.Id == x.OrigenRespuesta.IdEntrevistado)).Select(p => (p.Nombre + " " + p.Apellido1 + " " + p.Apellido2)).FirstOrDefault()
            }).ToList();

            NotificationService    notify          = new NotificationService();
            UsuarioServicio        usuarioServicio = new UsuarioServicio();
            List <DispositivoView> dispositivos    = usuarioServicio.GetDispositivosByOrigenAndGrupoPreguntas(idOrigen, idHC);
            List <string>          llaves          = dispositivos.Select(x => x.Llave).ToList();

            foreach (string notificacion in llaves)
            {
                notify.SendPushNotification(notificacion, "Se ha realizado Health Check", "Health Check realizado ");
            }

            if (respuestas == null)
            {
                return(NotFound());
            }

            return(Ok(respuestas));
        }