示例#1
0
        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." }));
            }
        }
示例#2
0
        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!"));
        }