static void TestarValidarPeticao() { string peticao = "{titulo1& [1.1 pergunta aqui] abc[1.2 - pergunta aqui] abc[1.3 - pergunta aqui] doc_1 que está bem ali }" + "{titulo2& [2.1 pergunta aqui] abcabc doc_2 [3.2 - pergunta aqui] abc[2.3 - pergunta aqui]}" + "{titulo3& [3.1 pergunta aqui] abcabc doc_3 [3.2 - pergunta aqui] abc[3.3 - pergunta aqui]}"; GerarQuestionario gerarQuestionario = new GerarQuestionario(); var perguntas = gerarQuestionario.ExtrairPerguntas(peticao); var mensagem = gerarQuestionario.ValidarExtrairPeguntas(perguntas); Console.WriteLine(mensagem); Console.ReadKey(); }
public ActionResult Create([Bind(Include = "PeticaoModeloId,Nome,NaturezaAcaoId,Comentario, PeticaoOriginal, PeticaoModificada")] PeticaoModelo peticaoModelo) { GerarQuestionario gerarQuestionario = new GerarQuestionario(); var perguntas = gerarQuestionario.ExtrairPerguntas(peticaoModelo.PeticaoModificada); var perguntasRepetidas = perguntas.Select(x => x.pergunta).Distinct(); if (perguntas.Count > 0 && perguntas.Count() > perguntasRepetidas.Count()) { ModelState.AddModelError("PeticaoModificada", "Uma pergunta não pode se repetir em uma mesma petição"); } if (ModelState.IsValid) { db.PeticaoModeloes.Add(peticaoModelo); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.NaturezaAcaoId = new SelectList(db.NaturezaAcaos, "NaturezaAcaoID", "Nome", peticaoModelo.NaturezaAcaoId); return(View(peticaoModelo)); }
public ActionResult Edit([Bind(Include = "PeticaoModeloId,Nome,NaturezaAcaoId,Comentario, PeticaoOriginal, PeticaoModificada")] PeticaoModelo peticaoModelo) { //Validação: vedar no campo Petição anotada perguntas identicas GerarQuestionario gerarQuestionario = new GerarQuestionario(); var perguntas = gerarQuestionario.ExtrairPerguntas(peticaoModelo.PeticaoModificada); var perguntasRepetidas = perguntas.Select(x => x.pergunta).Distinct(); if (perguntas.Count > 0 && perguntas.Count() > perguntasRepetidas.Count()) { ViewBag.MensagemErro = "Erro no Campo Petição Anotada!"; //apenas para uso de exemplo. ModelState.AddModelError("PeticaoModificada", "Uma pergunta não pode se repetir em uma mesma petição"); } //daqui em diante, nada alterado. if (ModelState.IsValid) { db.Entry(peticaoModelo).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.NaturezaAcaoId = new SelectList(db.NaturezaAcaos, "NaturezaAcaoID", "Nome", peticaoModelo.NaturezaAcaoId); return(View(peticaoModelo)); }