public List <VariavelCalculoVariavel> ListarCalculo(VariavelCalculoVariavel entidade)
 {
     return(_variavelCalculoVariavel.ListarCalculo(entidade));
 }
 public VariavelCalculoVariavel Listar(VariavelCalculoVariavel entidade)
 {
     return(_variavelCalculoVariavel.Listar(entidade));
 }
 public void Remover(VariavelCalculoVariavel entidade)
 {
     _variavelCalculoVariavel.Remover(entidade);
 }
 public void Novo(VariavelCalculoVariavel entidade)
 {
     _variavelCalculoVariavel.Novo(entidade);
 }
示例#5
0
        protected void AdicionarItem_Click(object sender, EventArgs e)
        {
            VariavelCalculoVariavel dadosCalculoVariavel = new VariavelCalculoVariavel();

            if (HttpContext.Current.Session["CalculoVariavel"] == null)
            {
                HttpContext.Current.Session["CalculoVariavel"] = new List <VariavelCalculoVariavel>();
            }

            int ordem = 0;

            ordem = Convert.ToInt32(txtOrdem.Text);
            ordem++;
            txtOrdem.Text = ordem.ToString();

            ddlVariavelSelecionada.Items[ddlVariavelSelecionada.SelectedIndex].Value = ddlVariavelSelecionada.SelectedValue.Replace("/u", "");

            if (ddlOperador.SelectedIndex != 0)
            {
                ((List <VariavelCalculoVariavel>)HttpContext.Current.Session["CalculoVariavel"]).Add(new VariavelCalculoVariavel()
                {
                    Variavel = new Variavel()
                    {
                        IDVariavel = Convert.ToInt32(ddlVariavelSelecionada.SelectedValue)
                    },
                    TipoOperadorCalculo = new TipoOperadorCalculo()
                    {
                        IDTipoOperadorCalculo = Convert.ToInt32(ddlOperador.SelectedValue)
                    },
                    OrdemOperacao  = ordem,
                    AbreParentese  = ckbAbrePar.Checked,
                    FechaParentese = ckbFechaPar.Checked
                });
            }
            else
            {
                dadosCalculoVariavel.Variavel = new Variavel()
                {
                    IDVariavel = Convert.ToInt32(ddlVariavelSelecionada.SelectedValue)
                };
                if (!string.IsNullOrEmpty(ddlOperador.SelectedValue))
                {
                    dadosCalculoVariavel.TipoOperadorCalculo = new TipoOperadorCalculo()
                    {
                        IDTipoOperadorCalculo = Convert.ToInt32(ddlOperador.SelectedValue)
                    };
                }
                else
                {
                    dadosCalculoVariavel.TipoOperadorCalculo = new TipoOperadorCalculo();
                }
                dadosCalculoVariavel.OrdemOperacao  = ordem;
                dadosCalculoVariavel.AbreParentese  = ckbAbrePar.Checked;
                dadosCalculoVariavel.FechaParentese = ckbFechaPar.Checked;
                ((List <VariavelCalculoVariavel>)HttpContext.Current.Session["CalculoVariavel"]).Add(dadosCalculoVariavel);
            }
            if (ckbAbrePar.Checked == true)
            {
                txtCalculoFinal.Text += "(";
            }

            txtCalculoFinal.Text += string.Concat(ddlOperador.SelectedItem.Text, ddlVariavelSelecionada.SelectedItem.Text);

            if (ckbFechaPar.Checked == true)
            {
                txtCalculoFinal.Text += ")";
            }

            ddlVariavelSelecionada.Items[ddlVariavelSelecionada.SelectedIndex].Value += "/u";

            ckbAbrePar.Checked                   = false;
            ckbFechaPar.Checked                  = false;
            ddlOperador.SelectedIndex            = 0;
            ddlVariavelSelecionada.SelectedIndex = 0;
            uppCalculo.Update();
        }
示例#6
0
        /// <summary>
        /// Metodo testa o valor da variavel a fim de enquadrar em um critério
        /// </summary>
        /// <param name="entidadeFilha"></param>
        /// <param name="entidade"></param>
        /// <returns></returns>
        public Criterio CalculaVariavel(List <Variavel> entidadeFilha, Variavel entidade)
        {
            Criterio                   dadosCriterio        = new Criterio();
            List <Criterio>            dadosCriterioLista   = new List <Criterio>();
            CalculoVariavel            dadosCalculoVariavel = new CalculoVariavel();
            VariavelCalculoVariavel    dadosVariavelCalculo = new VariavelCalculoVariavel();
            VariavelCalculoVariavelBLL oVariavelCalculo     = new VariavelCalculoVariavelBLL();
            CriterioBLL                oCriterio            = new CriterioBLL();

            dadosCriterio.Variavel        = entidade;
            dadosCalculoVariavel.Variavel = entidade;

            //retorna todos os valores e operadores para uma expressão
            dadosCalculoVariavel.VariavelCalculoVariavel = oVariavelCalculo.ListarCalculo(dadosVariavelCalculo);

            //Concatena todos os valores e operadores da expressão
            for (int i = 0; i < dadosCalculoVariavel.VariavelCalculoVariavel.Count; i++)
            {
                entidade.Expressão += dadosCalculoVariavel.VariavelCalculoVariavel[i].TipoOperadorCalculo.Simbolo;
                entidade.Expressão += dadosCalculoVariavel.VariavelCalculoVariavel[i].Variavel.Criterio.Valor.ToString();
            }

            //Retorna o valor da expressão calculada
            entidade.Criterio.Valor = Convert.ToInt32(Eval(entidade.Expressão));

            //lista todas os Criterios para a variavel
            dadosCriterioLista = oCriterio.ListarVariavelLista(dadosCriterio);

            //Testa todas os critérios variaveis até encontrar o correto
            for (int j = 0; j < dadosCriterioLista.Count; j++)
            {
                //Menor ou igual ao valor do critério atual (Até)
                if (dadosCriterioLista[j].TipoCriterioVariavel.IDTipoCriterioVariavel == 1 &&
                    entidade.Criterio.Valor <= dadosCriterioLista[j].CriterioVariavel.Valor1)
                {
                    entidade.Criterio.IDCriterio = dadosCriterioLista[j].CriterioVariavel.Criterio.IDCriterio;
                    break;
                }
                //Entre os valores do Critério atual (Entre)
                else if (dadosCriterioLista[j].TipoCriterioVariavel.IDTipoCriterioVariavel == 2 &&
                         entidade.Criterio.Valor >= dadosCriterioLista[j].CriterioVariavel.Valor1 &&
                         entidade.Criterio.Valor <= dadosCriterioLista[j].CriterioVariavel.Valor2)
                {
                    entidade.Criterio.IDCriterio = dadosCriterioLista[j].CriterioVariavel.Criterio.IDCriterio;
                    break;
                }
                //Menor que o valor do critério atual (Maior que)
                else if (dadosCriterioLista[j].TipoCriterioVariavel.IDTipoCriterioVariavel == 3 &&
                         entidade.Criterio.Valor > dadosCriterioLista[j].CriterioVariavel.Valor1)
                {
                    entidade.Criterio.IDCriterio = dadosCriterioLista[j].CriterioVariavel.Criterio.IDCriterio;
                    break;
                }
                //Igual ao valor do critério atual (Igual)
                else if (dadosCriterioLista[j].TipoCriterioVariavel.IDTipoCriterioVariavel == 4 &&
                         entidade.Criterio.Valor == dadosCriterioLista[j].CriterioVariavel.Valor1)
                {
                    entidade.Criterio.IDCriterio = dadosCriterioLista[j].CriterioVariavel.Criterio.IDCriterio;
                    break;
                }
                //Menor que o valor do criterio atual (Manor que)
                else if (dadosCriterioLista[j].TipoCriterioVariavel.IDTipoCriterioVariavel == 5 &&
                         entidade.Criterio.Valor < dadosCriterioLista[j].CriterioVariavel.Valor1)
                {
                    entidade.Criterio.IDCriterio = dadosCriterioLista[j].CriterioVariavel.Criterio.IDCriterio;
                    break;
                }
            }
            return(dadosCriterio);
        }