public ActionResult Post([FromBody] SalvarEntregaDeLicaoRequest request)
 {
     try
     {
         _geracaoDeEntregasService.Salvar(request, _usuarioLogado.Obter());
         return(NoContent());
     }
     catch (Exception e)
     {
         return(NotFound(e.Message));
     }
 }
        public void Salvar(SalvarEntregaDeLicaoRequest request, Usuario usuarioLogado)
        {
            var entrega = _entregaDeLicaoService.ObterPorId(request.IdEntregaDeLicao);

            if (entrega == null)
            {
                throw new Exception("Entrega de lição não encontrada.");
            }

            if (!_consultaEntregaService.UsuarioEhResponsavelPelaEntregaDeLicao(entrega.Id, usuarioLogado.Id))
            {
                throw new Exception("Entrega de lição não encontrada.");
            }

            if (!TodasAsQuestoesRespondidasFazemParteDaMesmaLicao(entrega, request.Questoes))
            {
                throw new Exception("Solicitação possui questões que não fazem parte da lição.");
            }

            AlterarStatus(entrega, request.Status);

            foreach (var questao in request.Questoes)
            {
                Resposta resposta = entrega.Respostas.FirstOrDefault(r => r.IdQuestao == questao.Id);
                if (resposta == null)
                {
                    resposta = new Resposta();
                    resposta.IdEntregaDeLicao = entrega.Id;
                    resposta.IdQuestao        = questao.Id;
                    entrega.Respostas.Add(resposta);
                }

                resposta.Conteudo = questao.Resposta;
            }


            _entregaDeLicaoService.Manter(entrega);
        }