예제 #1
0
        public IActionResult RespondMOPregunta([FromBody] RespondMOPreguntaDto dto)
        {
            var    ident  = User.Identity as ClaimsIdentity;
            var    userID = ident.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
            Alumno alumno = _alumnos.GetById(userID);

            PreguntaMO pregunta = (PreguntaMO)_preguntas.GetById(dto.Id);

            foreach (int opcion in dto.Opciones)
            {
                var o = _opciones.GetById(opcion);
                o.RespuestasAsociadas.Add(new RespuestaLimitada
                {
                    Alumno   = alumno,
                    Pregunta = pregunta
                });
                _opciones.Update(o);
            }

            return(Ok());
        }
예제 #2
0
        public IActionResult Post([FromBody] EGPostEncuesta dto)
        {
            var       ident     = User.Identity as ClaimsIdentity;
            var       userID    = ident.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
            Adscripto adscripto = _adscriptos.GetById(userID);

            EncuestaGlobal toPost = new EncuestaGlobal
            {
                Titulo        = dto.Titulo,
                Descripcion   = dto.Descripcion,
                FechaCreacion = DateTime.Now,
                Adscripto     = adscripto,
                Preguntas     = new List <Pregunta>()
            };

            foreach (EGPostPregunta dtoPregunta in dto.Preguntas)
            {
                switch (dtoPregunta.Tipo)
                {
                case 0:
                    toPost.Preguntas.Add(new PreguntaEL
                    {
                        Texto      = dtoPregunta.Texto,
                        Respuestas = new List <RespuestaLibre>()
                    });
                    break;

                case 1:
                    var preguntaToPost = new PreguntaUO
                    {
                        Texto    = dtoPregunta.Texto,
                        Opciones = new List <PreguntaOpcion>()
                    };

                    foreach (string dtoRespuesta in dtoPregunta.Respuestas)
                    {
                        preguntaToPost.Opciones.Add(new PreguntaOpcion
                        {
                            Pregunta = preguntaToPost,
                            Valor    = dtoRespuesta
                        });
                    }
                    toPost.Preguntas.Add(preguntaToPost);
                    break;

                case 2:
                case 3:
                    var moPreguntaToPost = new PreguntaMO
                    {
                        Texto    = dtoPregunta.Texto,
                        Opciones = new List <PreguntaOpcion>()
                    };

                    foreach (string dtoRespuesta in dtoPregunta.Respuestas)
                    {
                        moPreguntaToPost.Opciones.Add(new PreguntaOpcion
                        {
                            Pregunta = moPreguntaToPost,
                            Valor    = dtoRespuesta
                        });
                    }
                    toPost.Preguntas.Add(moPreguntaToPost);
                    break;
                }
            }

            _repo.Add(toPost);
            return(Ok(DtoGet(toPost)));
        }