Esempio n. 1
0
        /// <summary>
        /// Metodo testa a regra lógica a fim de enquadrar a atual variavel em um critério
        /// </summary>
        /// <param name="entidadeFilha"></param>
        /// <param name="entidade"></param>
        /// <returns></returns>
        public Criterio TestaRegraLogica(List <Variavel> entidadeFilha, Variavel entidade)
        {
            RegraLogicaBLL                   oRegraLogica          = new RegraLogicaBLL();
            List <RegraLogica>               dadosRegraLogicaLista = new List <RegraLogica>();
            RegraLogica                      dadosRegraLogica      = new RegraLogica();
            Criterio                         dadosCriterio         = new Criterio();
            MapeamentoCriterioRegraLogica    dadosMapeamento       = new MapeamentoCriterioRegraLogica();
            MapeamentoCriterioRegraLogicaBLL oMapeamento           = new MapeamentoCriterioRegraLogicaBLL();

            dadosRegraLogica.Variavel = entidade;
            //carrega todas as regras logicas da variavel pai
            dadosRegraLogicaLista = oRegraLogica.ListarPorVariavel(dadosRegraLogica);

            //percorre a lista de regra logica até encontrar a regra válida
            for (int i = 0; i < dadosRegraLogicaLista.Count; i++)
            {
                for (int j = 0; j < entidadeFilha.Count; j++)
                {
                    entidadeFilha[j].RegraLogica.IdRegraLogica = dadosRegraLogicaLista[i].IdRegraLogica;
                    //testa Variaveis para encontrar a regra lógica válida
                    entidadeFilha[j].RegraLogica = oRegraLogica.ValidarVariavel(entidadeFilha[j]);
                    //Regra Lógica falsa interrompe o laço
                    if (entidadeFilha[j].RegraLogica.Valido == false)
                    {
                        break;
                    }
                    //Regra lógica válida prepara o critério para retorno
                    else if (j + 1 == entidadeFilha.Count)
                    {
                        if (dadosRegraLogicaLista[i].VariavelHerdado.IDVariavel == 0)
                        {
                            dadosCriterio.IDCriterio = dadosRegraLogicaLista[i].Criterio.IDCriterio;
                        }
                        else
                        {
                            //Consome o Critério Original
                            dadosMapeamento.IdCriterioOriginal = Convert.ToInt32(dadosRegraLogicaLista[i].Criterio.IDCriterio);
                            //carrega o Critério Transformado
                            dadosMapeamento          = oMapeamento.Listar(dadosMapeamento);
                            dadosCriterio.IDCriterio = dadosMapeamento.IdCriterioTrasnformado;
                        }
                        return(dadosCriterio);
                    }
                }
            }
            return(dadosCriterio);
        }
Esempio n. 2
0
 public MapeamentoCriterioRegraLogica Listar(MapeamentoCriterioRegraLogica entidade)
 {
     return(_mapeamentoCriterioRegraLogica.Listar(entidade));
 }
Esempio n. 3
0
 public void Editar(MapeamentoCriterioRegraLogica entidade)
 {
     _mapeamentoCriterioRegraLogica.Editar(entidade);
 }
Esempio n. 4
0
 public void Remover(MapeamentoCriterioRegraLogica entidade)
 {
     _mapeamentoCriterioRegraLogica.Remover(entidade);
 }
Esempio n. 5
0
 public void Novo(MapeamentoCriterioRegraLogica entidade)
 {
     _mapeamentoCriterioRegraLogica.Novo(entidade);
 }