public IActionResult Post([FromBody] CandidatoViewModel candidatos) { if (candidatos == null) { return(BadRequest()); } candidatos.CanditadoId = 0; try { _service.Add(candidatos); return(new OkObjectResult(candidatos)); } catch (System.Exception) { return(BadRequest()); } }
public async Task <IActionResult> RegistrarCandidato(NovoCandidatoRequest novoCandidatoDto) { if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } var user = new ApplicationUser { DataNascimento = novoCandidatoDto.DataNascimento, Email = novoCandidatoDto.Email, EmailConfirmed = true, LinkGithub = novoCandidatoDto.LinkGithub, LinkLinkedin = novoCandidatoDto.LinkLinkedin, Nome = novoCandidatoDto.Nome, PhoneNumber = novoCandidatoDto.Celular, PhoneNumberConfirmed = true, UserName = novoCandidatoDto.Email }; var result = await _userManager.CreateAsync(user, novoCandidatoDto.Senha); if (result.Succeeded) { await _candidatoService.Add(new Candidato { ApplicationUserId = user.Id, Profissao = novoCandidatoDto.Profissao, Endereco = _mapper.Map <Endereco>(novoCandidatoDto.Endereco) }); await _userManager.AddToRoleAsync(user, "Candidato"); return(CustomResponse(await GeraJWT(user.Email))); } foreach (var erro in result.Errors) { NotificarErro(erro.Description); } return(CustomResponse()); }
public IActionResult Post([FromBody] CandidatoDto dto) { try { CandidatoDto novoCandidato = candidatoService.Add(dto); if (novoCandidato != null) { return(Ok(novoCandidato)); } else { return(NotFound()); } } catch (Exception ex) { _logger.LogCritical(ex, string.Format("Houve um erro ao cadastrar um Candidato {0}.", dto)); return(StatusCode(500)); } }
public async Task <IActionResult> Criar(Guid idDesafio, InscricaoRequest inscricaoRequest) { if (!ModelState.IsValid) { return(CustomResponse(ModelState)); } var desafio = await _desafioService.FindAsNoTracking(idDesafio); if (desafio == null) { return(NotFound("Desafio não encontrado.")); } if (desafio.Id != inscricaoRequest.DesafioId) { return(BadRequest("O id do desafio informado no payload é diferende do informado na rota.")); } if (desafio.LimiteInscricao.HasValue) { var inscricoes = await _inscricaoService.ObterInscricoesDesafioCandidato(idDesafio); if (inscricoes.Count() >= desafio.LimiteInscricao) { return(BadRequest("Este desafio já atingiu seu limite de inscrições.")); } } if (desafio.DataFechamento.HasValue) { if (desafio.DataFechamento.Value <= DateTime.Now) { return(BadRequest("Este desafio já foi fechado e não permite novas inscrições.")); } } var user = new ApplicationUser { DataNascimento = inscricaoRequest.DataNascimento, Email = inscricaoRequest.Email, LinkGithub = inscricaoRequest.LinkGithub, LinkLinkedin = inscricaoRequest.LinkLinkedin, Nome = inscricaoRequest.Nome, PhoneNumber = inscricaoRequest.Celular, UserName = inscricaoRequest.Email }; var result = await _userManager.CreateAsync(user, "Senhapadrao#1234"); if (!result.Succeeded) { foreach (var erro in result.Errors) { NotificarErro(erro.Description); } return(CustomResponse()); } var candidato = new Candidato { ApplicationUserId = user.Id, Profissao = inscricaoRequest.Profissao, Endereco = _mapper.Map <Endereco>(inscricaoRequest.Endereco) }; await _candidatoService.Add(candidato); await _userManager.AddToRoleAsync(user, "Candidato"); var inscricao = new Inscricao { DesafioId = idDesafio, CandidatoId = candidato.Id, DataInscricao = DateTime.Now, DataInicializacao = DateTime.Now, DataFinalizacao = DateTime.Now }; await _inscricaoService.Add(inscricao); foreach (var resposta in inscricaoRequest.Respostas) { await _respostaService.Add(new Resposta { InscricaoId = inscricao.Id, QuestaoId = resposta.QuestaoId, Descricao = resposta.Descricao }); } return(CustomResponse(new InscricaoCreateResponse { IdInscricao = inscricao.Id, Message = "Inscrição realizada com sucesso!" })); }