protected void rdbFator_CheckedChanged(Object sender, EventArgs e)
        {
            RadioButton  radioButton     = sender as RadioButton;
            GridViewRow  gvRow           = (GridViewRow)radioButton.NamingContainer;
            List <Fator> dadosFatorLista = new List <Fator>();
            Fator        dadosFator      = new Fator();
            FatorBLL     oFator          = new FatorBLL();

            txtIdFatorPai.Text = grvFator.DataKeys[gvRow.RowIndex].Values[0].ToString();
            txtFatorPai.Text   = grvFator.DataKeys[gvRow.RowIndex].Values[2].ToString();

            dadosFatorLista     = ((List <Fator>)HttpContext.Current.Session["ListaFator"]);
            dadosFator          = oFator.GeraCodigo(dadosFatorLista, txtIdFatorPai.Text);
            txtCodigoFator.Text = dadosFator.Codigo;
            for (int i = 0; i < dadosFatorLista.Count; i++)
            {
                if (dadosFatorLista[i].IDFator == dadosFator.IdPai)
                {
                    dadosFatorLista[i].FatorFilho.Add(dadosFator);
                }
            }

            grvFator.DataSource = null;
            grvFator.DataBind();
            mdlFator.Hide();
            uppFatorPai.Update();
        }
        protected void lkbRemover_Click(object sender, EventArgs e)
        {
            FatorBLL oFator     = new FatorBLL();
            Fator    dadosFator = new Fator();

            try
            {
                dadosFator.IDFator = Convert.ToInt32(txtIdFator.Text);
                dadosFator.Modelo  = new Modelo()
                {
                    IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
                };
                oFator.Remover(dadosFator);
                dadosFator.Modelo = new Modelo()
                {
                    IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
                };
                dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;
                dadosFator.TipoFator    = new TipoFator()
                {
                    IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
                };
                HttpContext.Current.Session["ListaFator"] = oFator.ListarModeloFator(dadosFator);
                PopulaTreeView();
                LimpaCampos();
            }
            catch (System.Data.SqlClient.SqlException)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "javascript:alert('Impossível excluir este Fator, \\nja existe relação para ele no sistema de Segmentação.');", true);
            }
        }
        protected void trvFator_SelectedNodeChanged(object sender, EventArgs e)
        {
            List <Fator> dadosFator = new List <Fator>();
            FatorBLL     oFator     = new FatorBLL();

            dadosFator = (List <Fator>)HttpContext.Current.Session["ListaFator"];

            for (int i = 0; i < dadosFator.Count; i++)
            {
                if (!string.IsNullOrEmpty(trvFator.SelectedNode.Value))
                {
                    if (dadosFator[i].IDFator == Convert.ToInt32(trvFator.SelectedNode.Value))
                    {
                        txtIdFator.Text     = dadosFator[i].IDFator.ToString();
                        txtNome.Text        = dadosFator[i].Nome;
                        txtDescricao.Text   = dadosFator[i].Descricao;
                        txtComentario.Text  = dadosFator[i].Comentario;
                        txtCodigoFator.Text = dadosFator[i].Codigo;
                        txtPeso.Text        = dadosFator[i].Peso.ToString();
                    }
                }
                else
                {
                    ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('Salve o Fator " + dadosFator[i].Nome + ", para que possa ser editado');", true);
                }
            }
        }
        protected void lkbSalvarFator_Click(object sender, EventArgs e)
        {
            FatorBLL     oFator          = new FatorBLL();
            Fator        dadosFator      = new Fator();
            List <Fator> dadosFatorLista = new List <Fator>();

            dadosFatorLista = (List <Fator>)HttpContext.Current.Session["ListaFator"];
            try
            {
                oFator.Persistir(dadosFatorLista);
                dadosFator.Modelo = new Modelo()
                {
                    IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
                };
                dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;
                dadosFator.TipoFator    = new TipoFator()
                {
                    IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
                };
                HttpContext.Current.Session["ListaFator"] = oFator.ListarModeloFator(dadosFator);
                PopulaTreeView();
                LimpaCampos();
            }
            catch (BLL.Exceptions.PesoInvalido ex)
            {
                ClientScript.RegisterClientScriptBlock(this.GetType(), Guid.NewGuid().ToString(), "alert('" + ex.Message + "');", true);
            }
            catch (Exception)
            {
            }
        }
        protected void btnListarFatores_Click(object sender, EventArgs e)
        {
            FatorBLL oFator     = new FatorBLL();
            Fator    dadosFator = new Fator();

            dadosFator.Modelo = new Modelo()
            {
                IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
            };
            dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;
            dadosFator.TipoFator    = new TipoFator()
            {
                IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
            };
            HttpContext.Current.Session["ListaFator"] = oFator.ListarModeloFator(dadosFator);
            PopulaTreeView();
            LimpaCampos();
            lkbNovoFator.Enabled = true;
        }
        protected void lkbPesquisar1_Click(object sender, EventArgs e)
        {
            Fator        dadosFator      = new Fator();
            List <Fator> dadosFatorLista = new List <Fator>();
            FatorBLL     oFator          = new FatorBLL();

            dadosFator.Modelo = new Modelo()
            {
                IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
            };
            dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;
            dadosFator.TipoFator    = new TipoFator()
            {
                IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
            };
            if (!string.IsNullOrEmpty(txtCodigoFiltro.Text))
            {
                dadosFator.Codigo = txtCodigoFiltro.Text;
            }
            else
            {
                dadosFator.Codigo = null;
            }
            if (!string.IsNullOrEmpty(txtNomeFiltro.Text))
            {
                dadosFator.Nome = txtNomeFiltro.Text;
            }
            else
            {
                dadosFator.Nome = "%";
            }
            dadosFatorLista     = oFator.ListarFiltroFator(dadosFator);
            grvFator.DataSource = dadosFatorLista;
            grvFator.DataBind();
            uppFator.Update();
        }
        protected void lkbNovoFator_Click(object sender, EventArgs e)
        {
            Fator        dadosFator      = new Fator();
            FatorBLL     oFator          = new FatorBLL();
            List <Fator> dadosFatorLista = new List <Fator>();

            dadosFator.Modelo = new Modelo()
            {
                IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
            };
            dadosFator.TipoFator = new TipoFator()
            {
                IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
            };
            dadosFator.Usuario      = (Usuario)HttpContext.Current.Session["UsuarioLogado"];
            dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;

            if (string.IsNullOrEmpty(txtIdFator.Text))
            {
                dadosFator.Modelo = new Modelo()
                {
                    IDModelo = Convert.ToInt32(ddlModelo.SelectedValue)
                };
                dadosFator.TipoFator = new TipoFator()
                {
                    IDTipoFator = Convert.ToInt32(ddlTipoFator.SelectedValue)
                };
                dadosFator.Usuario      = (Usuario)HttpContext.Current.Session["UsuarioLogado"];
                dadosFator.LinhaNegocio = ((Usuario)HttpContext.Current.Session["UsuarioLogado"]).LinhaNegocio;
                dadosFatorLista         = ((List <Fator>)HttpContext.Current.Session["ListaFator"]);

                if (string.IsNullOrEmpty(txtCodigoFator.Text))
                {
                    dadosFator.Codigo = oFator.GeraCodigoRaiz(dadosFator, dadosFatorLista);
                }
                else
                {
                    dadosFator.Codigo = txtCodigoFator.Text;
                }

                if (!string.IsNullOrEmpty(txtIdFatorPai.Text))
                {
                    dadosFator.IdPai = Convert.ToInt32(txtIdFatorPai.Text);
                }
                dadosFator.Nome       = txtNome.Text;
                dadosFator.Descricao  = txtDescricao.Text;
                dadosFator.Comentario = txtComentario.Text;
                dadosFator.Peso       = Convert.ToInt32(txtPeso.Text);
                dadosFator.Status     = 1;

                ((List <Fator>)HttpContext.Current.Session["ListaFator"]).Add(dadosFator);
            }
            else
            {
                dadosFatorLista = (List <Fator>)HttpContext.Current.Session["ListaFator"];

                for (int i = 0; i < dadosFatorLista.Count; i++)
                {
                    if (dadosFatorLista[i].IDFator == Convert.ToInt32(txtIdFator.Text))
                    {
                        dadosFatorLista[i].Nome       = txtNome.Text;
                        dadosFatorLista[i].Descricao  = txtDescricao.Text;
                        dadosFatorLista[i].Comentario = txtComentario.Text;
                        dadosFatorLista[i].Peso       = Convert.ToInt32(txtPeso.Text);
                        dadosFatorLista[i].Status     = 2;
                    }
                }
            }

            //PopulaTreeView();
            Swap(trvFator.Nodes[0], dadosFator);
            LimpaCampos();
        }