示例#1
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));
            }
        }
示例#2
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);
        }
示例#3
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));
                }
            }
        }