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"); } }
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) + "}"); }
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)); } }
/// <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); }
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)); } } }