public async Task <IActionResult> Create([Bind("AvaliacaoId,Tipo,Enunciado")] QuestaoAvaliacaoViewModel questao)
        {
            if (ModelState.IsValid)
            {
                var result = await _avaliacaoAppService.AdicionarQuestaoAvaliacaoAsync(questao.AvaliacaoId, questao.Tipo, questao.Enunciado);

                if (result.Success)
                {
                    return(RedirectToAction(nameof(Index), new { avaliacaoId = questao.AvaliacaoId }));
                }
                else
                {
                    throw result.Exception;
                }
            }

            return(View(questao));
        }
        public async Task <IActionResult> Create(int?avaliacaoId)
        {
            if (avaliacaoId == null)
            {
                return(NotFound());
            }

            var result = await _avaliacaoRepository.ObterAsync(avaliacaoId.Value);

            var avaliacao = Mapper.Map <AvaliacaoViewModel>(result);

            var questao = new QuestaoAvaliacaoViewModel()
            {
                Avaliacao   = avaliacao,
                AvaliacaoId = avaliacao.Id
            };

            ViewData["OpcoesTipo"] = ObterOpcoesTipo();

            return(View(questao));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,AvaliacaoId,Tipo,Enunciado")] QuestaoAvaliacaoViewModel questao)
        {
            if (id != questao.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                var result = await _avaliacaoAppService.AlterarQuestaoAvaliacaoAsync(questao.Id, questao.Tipo, questao.Enunciado);

                if (result.Success)
                {
                    return(RedirectToAction(nameof(Index), new { questao.AvaliacaoId }));
                }
                else
                {
                    throw result.Exception;
                }
            }

            return(View(questao));
        }