Ejemplo n.º 1
0
 public void removeEncuestaByCode(int code)
 {
     // Valida si el usuario logueado tiene acceso al modulo
     if (Utils.haveAccessTo(Utils.MODULOENCUESTAS))
     {
         bienestarEntities db = new bienestarEntities();
         // Obtener la encuesta que se va a eliminar
         BE_ENCUESTA encuesta = db.BE_ENCUESTA.Single(e => e.CODIGO == code);
         db.BE_ENCUESTA.DeleteObject(encuesta);
         db.SaveChanges();
         writeResponse("ok");
     }
 }
Ejemplo n.º 2
0
        public void surveysReport(int surveyCode, DateTime iniDate, DateTime?endDate)
        {
            bienestarEntities db = new bienestarEntities();
            // Obtiene la encuesta seleccionada
            BE_ENCUESTA encuesta = db.BE_ENCUESTA.Single(e => e.CODIGO == surveyCode);

            List <ResultadoSeleccione> resultadoSeleccione = new List <ResultadoSeleccione>();

            // Obtiene el reporte de cada pregunta
            foreach (Models.BE_ENCUESTA_PREGUNTA enpre in encuesta.BE_ENCUESTA_PREGUNTA)
            {
                ResultadoSeleccione rs = new ResultadoSeleccione(enpre.TIPO, enpre.TITULO, new List <Respuesta>());
                // Si las respuestas son distinta a parrafo
                if (enpre.TIPO != 3)
                {
                    // Realiza el conteo de las respuestas de cada pregunta
                    foreach (Models.BE_ENCUESTA_RESPUESTA enres in enpre.BE_ENCUESTA_RESPUESTA)
                    {
                        rs.respuestas.Add(new Respuesta(enres.TEXTO, enres.BE_ENCUESTA_RESPUESTA_ALUMNO.Where(era => (endDate != null ? iniDate <= era.FECHA && era.FECHA <= endDate : iniDate <= era.FECHA)).Count(), null));
                    }
                }
                else
                {
                    // Setea la lista de los textos
                    foreach (Models.BE_ENCUESTA_RESPUESTA_TEXTO ert in enpre.BE_ENCUESTA_RESPUESTA_TEXTO.Where(era => (endDate != null ? iniDate <= era.FECHA && era.FECHA <= endDate : iniDate <= era.FECHA)))
                    {
                        rs.respuestas.Add(new Respuesta(null, 0, ert.TEXTO));
                    }
                }

                resultadoSeleccione.Add(rs);
            }
            // Estudiantes que hicieron la encuesta
            List <int> studentCodesSelect = db.BE_ENCUESTA_RESPUESTA_ALUMNO.Where(era => era.CODIGOENCUESTA == surveyCode && (endDate != null ? iniDate <= era.FECHA && era.FECHA <= endDate : iniDate <= era.FECHA)).Select(a => a.CODIGOGRADUADO).Distinct().ToList();
            List <int> studentCodesParagr = db.BE_ENCUESTA_RESPUESTA_TEXTO.Where(era => era.CODIGOENCUESTA == surveyCode && (endDate != null ? iniDate <= era.FECHA && era.FECHA <= endDate : iniDate <= era.FECHA)).Select(a => a.CODIGOGRADUADO).Distinct().ToList();

            foreach (int studCode in studentCodesParagr)
            {
                if (!studentCodesSelect.Contains(studCode))
                {
                    studentCodesSelect.Add(studCode);
                }
            }
            // Lista de los alumnos que contestaron la encuesta
            List <GRADUADO> listAlumnos = db.GRADUADOS.Where(a => studentCodesSelect.Contains(a.GRDCODIGOI)).ToList();

            writeResponse("{\"encuestados\": " + getSurveyAnsweredCount(surveyCode, iniDate, endDate) + ",\"" + "TITULO\":\""
                          + encuesta.TITULO + "\"," + "\"" + "estudiantes\":" + new JavaScriptSerializer().Serialize(listAlumnos) + ","
                          + "\"preguntas\":" + new JavaScriptSerializer().Serialize(resultadoSeleccione) + "}");
        }
Ejemplo n.º 3
0
        public void addNewEncuesta(Encuesta encuesta)
        {
            if (Utils.haveAccessTo(Utils.MODULOENCUESTAS))
            {
                bienestarEntities db = new bienestarEntities();
                // Convierte la clase encuesta a una entidad Encuesta
                BE_ENCUESTA newEncuesta = convertToENCUESTA(encuesta);
                newEncuesta.FECHA = DateTime.Now;
                db.BE_ENCUESTA.AddObject(newEncuesta);

                db.SaveChanges();
                writeResponse(new JavaScriptSerializer().Serialize(newEncuesta));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Convierte una simple clase Encuesta a una entidad ENCUESTA
        /// </summary>
        /// <param name="encuesta"></param>
        /// <returns></returns>
        private Models.BE_ENCUESTA convertToENCUESTA(Encuesta encuesta)
        {
            BE_ENCUESTA encuestaEntity = new BE_ENCUESTA();

            // Actualiza la encuesta en objeto con los datos de la clase
            if (encuesta.CODIGO != 0)
            {
                encuestaEntity.CODIGO = encuesta.CODIGO;
            }
            encuestaEntity.TITULO      = encuesta.TITULO;
            encuestaEntity.DESCRIPCION = encuesta.DESCRIPCION;

            EntityCollection <Models.BE_ENCUESTA_PREGUNTA> encPreEntColl = new EntityCollection <Models.BE_ENCUESTA_PREGUNTA>();

            // Actualiza las preguntas de la encuesta en objeto con los datos de la clase
            foreach (BE_ENCUESTA_PREGUNTA ep in encuesta.BE_ENCUESTA_PREGUNTA)
            {
                Models.BE_ENCUESTA_PREGUNTA epEntity = new Models.BE_ENCUESTA_PREGUNTA();

                if (ep.CODIGO != 0)
                {
                    epEntity.CODIGO = ep.CODIGO;
                }
                epEntity.TITULO    = ep.TITULO;
                epEntity.TIPO      = ep.TIPO;
                epEntity.REQUERIDO = ep.REQUERIDO;

                EntityCollection <Models.BE_ENCUESTA_RESPUESTA> encResEntColl = new EntityCollection <Models.BE_ENCUESTA_RESPUESTA>();
                // Actualiza las respuestas de las preguntas en objeto con los datos de la clase
                foreach (BE_ENCUESTA_RESPUESTA er in ep.BE_ENCUESTA_RESPUESTA)
                {
                    Models.BE_ENCUESTA_RESPUESTA erEntity = new Models.BE_ENCUESTA_RESPUESTA();

                    if (er.CODIGO != 0)
                    {
                        erEntity.CODIGO = er.CODIGO;
                    }
                    erEntity.TEXTO = er.TEXTO;
                    encResEntColl.Add(erEntity);
                }

                epEntity.BE_ENCUESTA_RESPUESTA = encResEntColl;
                encPreEntColl.Add(epEntity);
            }

            encuestaEntity.BE_ENCUESTA_PREGUNTA = encPreEntColl;
            return(encuestaEntity);
        }
Ejemplo n.º 5
0
        public void saveEncuesta(Encuesta encuestaEdited)
        {
            // Convierte la clase encuesta a una entidad Encuesta
            BE_ENCUESTA updatedEncuesta = convertToENCUESTA(encuestaEdited);

            // Valida si el usuario logueado tiene acceso al modulo
            if (Utils.haveAccessTo(Utils.MODULOENCUESTAS))
            {
                using (bienestarEntities db = new bienestarEntities())
                {
                    BE_ENCUESTA currentEncuesta = db.BE_ENCUESTA.Single(e => e.CODIGO == updatedEncuesta.CODIGO);

                    currentEncuesta.BE_ENCUESTA_PREGUNTA.ToList().ForEach(ep => db.BE_ENCUESTA_PREGUNTA.DeleteObject(ep));
                    db.SaveChanges();

                    foreach (Models.BE_ENCUESTA_PREGUNTA ep in updatedEncuesta.BE_ENCUESTA_PREGUNTA)
                    {
                        ep.CODIGO = default(int);
                        foreach (Models.BE_ENCUESTA_RESPUESTA er in ep.BE_ENCUESTA_RESPUESTA)
                        {
                            er.CODIGO = default(int);
                        }
                    }
                }

                using (bienestarEntities db = new bienestarEntities())
                {
                    BE_ENCUESTA currentEncuesta = db.BE_ENCUESTA.Single(e => e.CODIGO == updatedEncuesta.CODIGO);

                    currentEncuesta.DESCRIPCION = updatedEncuesta.DESCRIPCION;
                    currentEncuesta.TITULO      = updatedEncuesta.TITULO;

                    foreach (Models.BE_ENCUESTA_PREGUNTA ep in updatedEncuesta.BE_ENCUESTA_PREGUNTA.ToList())
                    {
                        currentEncuesta.BE_ENCUESTA_PREGUNTA.Add(ep);
                    }

                    db.SaveChanges();
                    writeResponse(new JavaScriptSerializer().Serialize(currentEncuesta));
                }
            }
        }