private void SetRegras() { var start = false; { foreach (var linha in _linhasCode) { if (start) { if (!String.IsNullOrEmpty(linha)) { if (linha.Contains("Regras - CÓDIGO, NOME, POSIÇÃO")) break; var split = linha.Split(','); var regra = new Regra() { Posicao = Convert.ToInt32(split[0]), Nome = split[1], Codigo = Convert.ToInt32(split[2]), }; _regras.Add(regra.Posicao, regra); } } if (linha.Contains("POSIÇÃO, NOME, CÓDIGO")) start = true; } } { start = false; Regra regra = null; foreach (var linha in _linhasDescription) { if (start) { if (!String.IsNullOrEmpty(linha)) { if (linha.Contains("PERGUNTAS")) break; //Pega regra if (linha.Contains("Regra")) { regra = _regras[Convert.ToInt32(linha.Split('a')[1].Trim())]; continue; } //seta condição if (linha.Contains(" SE ") || linha.Contains(" E ")) { var split = linha.Split('E')[1].Split('='); var variavel = split[0].Trim(); var valor = split[1].Trim(); var condicao = new Condicao(); condicao.Variavel = _variaveis[variavel]; if (valor != "Sim" && valor != "Não") { condicao.Valor = _valores[valor]; } else { if (valor == "Sim") condicao.Boolean = true; } _condicoes.Add(condicao); regra.AddCondicao(condicao); continue; } //seta assertiva ('entao') if (linha.Contains(" ENTÃO ")) { var temp = linha.Split('O'); var temp2 = ""; string[] split; if (temp.Length > 2) { for (int i = 1; i < temp.Length; i++) { temp2 += (i == 1 ? "" : "O") + temp[i]; } } else { temp2 = temp[1]; } split = temp2.Replace("CNF 100%", "").Split('='); var variavel = split[0].Trim(); var valor = split[1].Trim(); var condicao = new Condicao(); condicao.Variavel = _variaveis[variavel]; if (valor != "Sim" && valor != "Não") { condicao.Valor = _valores[valor]; } else { if (valor == "Sim") condicao.Boolean = true; } condicao.IsAcertiva = true; regra.Assertiva = condicao; } } } if (linha.Contains("REGRAS")) start = true; } } }
public void AddCondicao(Condicao condicao) { condicao.Regra = this; }
private void SetRegras() { var start = false; { foreach (var linha in _linhasCode) { if (start) { if (!String.IsNullOrEmpty(linha)) { if (linha.Contains("Regras - CÓDIGO, NOME, POSIÇÃO")) { break; } var split = linha.Split(','); var regra = new Regra() { Posicao = Convert.ToInt32(split[0]), Nome = split[1], Codigo = Convert.ToInt32(split[2]), }; _regras.Add(regra.Posicao, regra); } } if (linha.Contains("POSIÇÃO, NOME, CÓDIGO")) { start = true; } } } { start = false; Regra regra = null; foreach (var linha in _linhasDescription) { if (start) { if (!String.IsNullOrEmpty(linha)) { if (linha.Contains("PERGUNTAS")) { break; } //Pega regra if (linha.Contains("Regra")) { regra = _regras[Convert.ToInt32(linha.Split('a')[1].Trim())]; continue; } //seta condição if (linha.Contains(" SE ") || linha.Contains(" E ")) { var split = linha.Split('E')[1].Split('='); var variavel = split[0].Trim(); var valor = split[1].Trim(); var condicao = new Condicao(); condicao.Variavel = _variaveis[variavel]; if (valor != "Sim" && valor != "Não") { condicao.Valor = _valores[valor]; } else { if (valor == "Sim") { condicao.Boolean = true; } } _condicoes.Add(condicao); regra.AddCondicao(condicao); continue; } //seta assertiva ('entao') if (linha.Contains(" ENTÃO ")) { var temp = linha.Split('O'); var temp2 = ""; string[] split; if (temp.Length > 2) { for (int i = 1; i < temp.Length; i++) { temp2 += (i == 1 ? "" : "O") + temp[i]; } } else { temp2 = temp[1]; } split = temp2.Replace("CNF 100%", "").Split('='); var variavel = split[0].Trim(); var valor = split[1].Trim(); var condicao = new Condicao(); condicao.Variavel = _variaveis[variavel]; if (valor != "Sim" && valor != "Não") { condicao.Valor = _valores[valor]; } else { if (valor == "Sim") { condicao.Boolean = true; } } condicao.IsAcertiva = true; regra.Assertiva = condicao; } } } if (linha.Contains("REGRAS")) { start = true; } } } }