示例#1
0
        public async Task <IActionResult> RegisterAdscripto([FromBody] RegisterAdscriptoDto model)
        {
            var user = new Adscripto();

            user.UserName = model.CI;
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var currentUser = await _userManager.FindByNameAsync(user.UserName);

                foreach (var item in _roles)
                {
                    if (!await _roleManager.RoleExistsAsync(item))
                    {
                        var createRoleResult = await _roleManager.CreateAsync(new IdentityRole(item));

                        if (!createRoleResult.Succeeded)
                        {
                            throw new ApplicationException("Creating role " + item + "failed with error(s): " + createRoleResult.Errors);
                        }
                    }
                }

                if (!await _userManager.IsInRoleAsync(user: user, role: "Adscripto"))
                {
                    var assignRoleResult = await _userManager.AddToRoleAsync(user, "Adscripto");

                    if (!assignRoleResult.Succeeded)
                    {
                        throw new ApplicationException("Creating role 'Adscripto' failed with error(s): " + assignRoleResult.Errors);
                    }
                }

                if (await _userManager.IsInRoleAsync(user, "Adscripto"))
                {
                    var adscripto = (Adscripto)currentUser;
                    _adscriptoManager.Add(adscripto);
                }

                await _signInManager.SignInAsync(user, false);

                return(Ok(new
                {
                    Token = await GenerateJwtToken(model.CI, user)
                }));
            }
            return(StatusCode((int)HttpStatusCode.Conflict));
        }
示例#2
0
        public IActionResult GetCreated()
        {
            var       ident     = User.Identity as ClaimsIdentity;
            var       userID    = ident.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
            Adscripto adscripto = _adscriptos.GetById(userID);

            IEnumerable <EncuestaGlobal> list    = _repo.GetAll();
            List <EGGetEncuesta>         dtoList = new List <EGGetEncuesta>();

            foreach (EncuestaGlobal eg in list)
            {
                if (eg.AdscriptoId == adscripto.Id)
                {
                    dtoList.Add(DtoGet(eg));
                }
            }

            return(Ok(dtoList));
        }
示例#3
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)));
        }