public ActionResult Editar(string codigo, FormCollection formCollection)
        {
            if (!formCollection.HasKeys() || String.IsNullOrWhiteSpace(codigo))
            {
                return(RedirectToAction("Index"));
            }

            int codQuestao = 0;

            int.TryParse(codigo, out codQuestao);
            Questao questao = null;

            if (codQuestao > 0)
            {
                questao = Questao.ListarPorCodigo(codQuestao);
            }

            questao.Enunciado = !String.IsNullOrWhiteSpace(formCollection["txtEnunciado"]) ? formCollection["txtEnunciado"].Trim() : questao.Enunciado;
            questao.Objetivo  = !String.IsNullOrWhiteSpace(formCollection["txtObjetivo"]) ? formCollection["txtObjetivo"].RemoveSpaces() : questao.Objetivo;

            if (questao.CodTipoQuestao == 2)
            {
                questao.ChaveDeResposta = !String.IsNullOrWhiteSpace(formCollection["txtChaveDeResposta"]) ? formCollection["txtChaveDeResposta"].Trim() : questao.ChaveDeResposta;
                questao.Comentario      = !String.IsNullOrWhiteSpace(formCollection["txtComentario"]) ? formCollection["txtComentario"].RemoveSpaces() : questao.Comentario;
            }

            if (questao.CodTipoQuestao == 1)
            {
                for (int i = 0; i < questao.Alternativa.Count; i++)
                {
                    questao.Alternativa.ElementAt(i).Enunciado  = !String.IsNullOrWhiteSpace(formCollection["txtAlternativaEnunciado" + (i + 1)]) ? formCollection["txtAlternativaEnunciado" + (i + 1)].RemoveSpaces() : questao.Alternativa.ElementAt(i).Enunciado;
                    questao.Alternativa.ElementAt(i).Comentario = !String.IsNullOrWhiteSpace(formCollection["txtAlternativaComentario" + (i + 1)]) ? formCollection["txtAlternativaComentario" + (i + 1)].RemoveSpaces() : questao.Alternativa.ElementAt(i).Comentario;
                }
            }

            if (questao.QuestaoAnexo.Count > 0)
            {
                for (int i = 0; i < questao.QuestaoAnexo.Count; i++)
                {
                    if (questao.QuestaoAnexo.ElementAt(i).CodTipoAnexo == TipoAnexo.TEXTO && !String.IsNullOrWhiteSpace($"txtAnexo{(i + 1)}"))
                    {
                        questao.QuestaoAnexo.ElementAt(i).Anexo = formCollection["txtAnexo" + (i + 1)].ToString().GetBytes();
                    }
                    questao.QuestaoAnexo.ElementAt(i).Legenda = !String.IsNullOrWhiteSpace(formCollection["txtAnexoLegenda" + (i + 1)]) ? formCollection["txtAnexoLegenda" + (i + 1)].RemoveSpaces() : questao.QuestaoAnexo.ElementAt(i).Legenda;
                    questao.QuestaoAnexo.ElementAt(i).Fonte   = !String.IsNullOrWhiteSpace(formCollection["txtAnexoFonte" + (i + 1)]) ? formCollection["txtAnexoFonte" + (i + 1)].RemoveSpaces() : String.Empty;
                }
            }

            Questao.Atualizar(questao);
            Lembrete.AdicionarNotificacao($"Questão {questao.CodQuestao} editada com sucesso.", Lembrete.POSITIVO);
            return(RedirectToAction("Detalhe", new { codigo = questao.CodQuestao }));
        }