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)); } } }