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