public void Validacoes(bool validaSequencia) { if (string.IsNullOrEmpty(Inicial)) { Erro = "A letra inicial não pode ser vazia."; return; } if (RegrasDeProducao.Count == 0) { Erro = "Deve existir ao menos uma regra de produção adicionada."; return; } if (Variaveis.Count == 0) { Erro = "Deve existir ao menos uma variável adicionada."; return; } bool Exists = Variaveis.Exists(x => x == Inicial); if (!Exists) { Erro = "Letra inicial não existe nas variáveis adiciondas."; return; } var regras = RegrasDeProducao.Where(x => x.De == string.Empty).ToList(); if (regras.Count > 0) { Erro = "Nenhuma regra de produção pode se iniciar com vazio."; return; } if (validaSequencia == true) { if (Sequencia.Count == 0) { Erro = "Deve existir ao menos uma sequência adicionada."; return; } var regra = RegrasDeProducao.Where(x => x.Indice == Sequencia.FirstOrDefault()).FirstOrDefault(); if (regra.De != Inicial) { Erro = "A primeira regra de produção da sequencia não é compatível com a palavra inicial."; return; } } else { if (string.IsNullOrEmpty(Resposta)) { Erro = "A resposta precisa ser adicionada."; return; } } }