示例#1
0
        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;
                }
            }
        }
示例#2
0
 public void AddCondicao(Condicao condicao)
 {
     condicao.Regra = this;
 }
示例#3
0
 public void AddCondicao(Condicao condicao)
 {
     condicao.Regra = this;
 }
示例#4
0
        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;
                    }
                }
            }
        }