public string CriarAvaliacao(AvaliacaoViewModel avaliacaoViewModel) { try { if (ValidaDadosDeEntrada(avaliacaoViewModel) != "") { return(JsonConvert.SerializeObject(new { code = 400, message = ValidaDadosDeEntrada(avaliacaoViewModel) })); } else { var avaliacaoService = Mapper.Map <AvaliacaoViewModel, Avaliacao>(avaliacaoViewModel); var locacao = _locacaoService.GetById(avaliacaoService.LocacaoId); if ((locacao.Aprovada == true || locacao.Cancelada == true) && locacao.Ativo == false) { _avaliacaoService.Add(avaliacaoService); return(JsonConvert.SerializeObject(new { code = 200, message = "Avaliação criada com Sucesso.", id = avaliacaoService.AvaliacaoId })); } else { return(JsonConvert.SerializeObject(new { code = 400, message = "Uma locação só pode ser avaliada quando a mesma tiver sido finalizada." })); } } } catch { return(JsonConvert.SerializeObject(new { code = 400, message = "Erro ao realizar a avaliação. Por favor, tente novamente." })); } }
public async Task <IActionResult> SalvarAvaliacaoDesafio(Guid idDesafio, AvaliacaoRequest avaliacaoRequest) { var desafio = await _desafioService.FindAsNoTracking(idDesafio); if (desafio == null) { return(NotFound("Desafio não encontrado")); } if (desafio.Id != avaliacaoRequest.DesafioId) { return(BadRequest("O id do desafio informado no payload é diferente do informado na rota")); } var inscricao = await _inscricaoService.GetById(avaliacaoRequest.InscricaoId); if (inscricao == null) { return(NotFound("Inscrição não encontrada")); } if (inscricao.DesafioId != desafio.Id) { return(NotFound("Inscrição não encontrada")); } var funcionario = await _funcionarioService.ObterFuncionarioUsuario(UsuarioId); foreach (var avaliacao in avaliacaoRequest.Avaliacoes) { await _avaliacaoService.Add(new Avaliacao { FuncionarioId = funcionario.Id, Aprovado = avaliacao.Correta, Descricao = avaliacao.Descricao, RespostaId = avaliacao.RespostaId }); } inscricao.Aprovado = avaliacaoRequest.CandidatoAprovado; inscricao.Resultado = avaliacaoRequest.ParecerFinal; await _inscricaoService.Update(inscricao); return(CustomResponse("Avaliação salva com sucesso!")); }