public IList<AbstractComponent> AtributosPorTabla()
 {
   List<dynamic> lista = new bf_at_atributos().AtributosPorTabla(id_tabla, id_tabla_campo, id_tabla_maestra);
   if (resultadosSAP == null)
   {
     return CreaAtributos(lista, id_origen, id_tabla_maestra);
   }
   else {
     return CreaAtributos(lista, id_origen, id_tabla_maestra,resultadosSAP);
   }
 }
    private void CompletarValores(string k)
    {
      co_at_atributos obj = new bf_at_atributos().GetData(Convert.ToInt32(k));
      txt_atri_Tatributo.Text = obj.atri_Tatributo;
      cmb_id_tipoDato.SelectedItem.Text = obj.id_tipoDato.descripcion;
      cmb_id_tabla.SetValueAndFireSelect(obj.id_tabla.id);
      num_atri_Nlargo.Text = obj.atri_Nlargo.ToString();
      num_atri_NanchoCaja.Text = obj.atri_NanchoCaja.ToString();
      num_atri_Nalto.Text = obj.atri_Nalto.ToString();
      num_atri_Nndecimales.Text = obj.atri_Nndecimales.ToString();

    }
    protected void strAtributos_OnReadData(object sender, StoreReadDataEventArgs e)
    {
      try
      {
        int start = e.Start;
        int limit = NumInt.Init(e.Parameters.GetParameter("limit").Value);
        limit = limit == 0 ? e.Limit : limit;
        int page = (start / limit) + 1;

        
        co_at_atributos_no Nomina = new co_at_atributos_no();
        Nomina.Pagina = page;
        Nomina.RegistrosPorPaginas = limit;
        Nomina.ColumnaOrden = e.Sort[0].Property;
        Nomina.OrdenColumna = (FwpDataGridDataBound.Orden)Enum.Parse(typeof(FwpDataGridDataBound.Orden), e.Sort[0].Direction.ToString(), true);

        AplicarFiltros(ref Nomina);

        IList<object> lista = new List<object>();

        Nomina<co_at_atributos_no> data = new bf_at_atributos().GetNomina(Nomina);

        foreach (co_at_atributos_no n in data.DataSource)
        {
          lista.Add(
            new
            {
              id_atributo = n.id_atributo,
              atri_Tatributo = n.atri_Tatributo,
              atri_Tsigla = n.atri_Tsigla,
              id_tipoDato = n.id_tipoDato,
              tida_TtipoDato = n.tida_TtipoDato,
              id_tabla = n.id_tabla,
              ta_tabla = n.ta_tabla,
              atri_Nalto = n.atri_Nalto,
              atri_NanchoCaja = n.atri_NanchoCaja,
              atri_Nndecimales = n.atri_Nndecimales,
              atri_Nlargo = n.atri_Nlargo
            });
        }

        strAtributos.DataSource = lista;
        strAtributos.PageSize = limit;
        PageProxy pageProxy = strAtributos.Proxy[0] as PageProxy;
        if (pageProxy != null) pageProxy.Total = data.Registros;
        strAtributos.DataBind();
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }
    protected void strAbributosAsociados_OnReadData(object sender, StoreReadDataEventArgs e)
    {
      try
      {
        int id_atributo = NumInt.Init(e.Parameters["id_atributo"]);
        if (id_atributo>0)
        {
          List<object> lista = new List<object>();
          var listaAtributo = new bf_at_atributos().ListaAtributoRuta(id_atributo);

          if (listaAtributo != null && listaAtributo.Any())
          {
            foreach (dynamic p in listaAtributo)
            {
              lista.Add(new object[] 
                        {
                         p.id_atributopropiedad, 
                         p.id_atributo, 
                         p.ta_descripcion, 
                         p.id_tablacampo ,
                         p.id_tabla, 
                         p.ruta_atributo
                     
                       });
            }

            strAtributosAsociados.DataSource = lista;
            strAtributosAsociados.DataBind();
          }
          else
          {
            strAtributosAsociados.RemoveAll();
          }
        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }
 private int CompletarValoresAtributo(string id_atributo)
 {
   co_at_atributos atri = new bf_at_atributos().GetData(Convert.ToInt32(id_atributo));
   hid_id_tabla.Text = atri.id_tabla.id.ToString();
   return atri.id_tabla.id;
 }
    protected void btnGuardar_click(object sender, DirectEventArgs e)
    {
      try
      {
        int id_canal = cmbCanales.SelectedItem.Value.ValidaEntero(cmbCanales.FieldLabel);
        int id_atributo = hid_id_atributo.Text.ValidaEntero("id_atributo");
        int id_tabla = cmbAsociacion.SelectedItem.Value.ValidaEntero(cmbAsociacion.FieldLabel);
        int id_origen = NumInt.Init(cmbDetalleAsociacion.SelectedItem.Value);
        int orden = txtOrden.Text.ValidaEntero(txtOrden.FieldLabel);

        bool agrego = new bf_at_atributos().GuardarAtributoPropiedad(id_atributo, id_tabla, id_origen, id_canal,orden);
        if (agrego)
        {
          Mensajes.Show("Mensaje", ErrorText.REGISTRO_INGRESADO);
        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }
    protected void cmbAsociacion_Select(object sender, DirectEventArgs e)
    {
      try
      {
        int id_tabla = hid_id_tabla.Text.ValidaEntero("id_tabla");
        int id_tablaOrigen = cmbAsociacion.SelectedItem.Value.ValidaEntero(cmbAsociacion.FieldLabel);
        co_at_tablas_campos tablaCampo = new co_at_tablas_campos();
        tablaCampo.id_tabla.id = id_tabla;
        tablaCampo.id_tablaOrigen.id = id_tablaOrigen;
        IList<object> lista = new List<object>();
        IList<co_at_tablas_campos> campos = new bf_at_tablas_campos().GetData(tablaCampo);
        if (campos != null && campos.Any())
        {
          DataSet resultadoDataSet = new bf_at_atributos().GetInforme(campos.First().taca_sql);
          if (resultadoDataSet != null)
          {
            foreach (DataRow row in resultadoDataSet.Tables[0].Rows)
            {
              lista.Add(new
              {
                id = row[0].ToString(),
                descripcion = row[1].ToString()
              });
            }
          }
          else
          {
            lista.Add(new
            {
              id = "0",
              descripcion = "Global"
            });
          }

          strDetalleAsociacion.DataSource = lista;
          strDetalleAsociacion.DataBind();

        }
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }
 protected void ValidaNombreAtributo_Blur(object sender, DirectEventArgs e)
 {
   try
   {
     if (!string.IsNullOrEmpty(txt_atri_Tatributo.Text))
     {
       co_at_atributos atributos =
         new bf_at_atributos().GetData(new co_at_atributos {atri_Tatributo = txt_atri_Tatributo.Text.Trim()})
           .FirstOrDefault();
       if (atributos!=null)
       {
         Mensajes.Error("Ya existe un atributo con el mismo nombre");
       }
     }
   }
   catch (Exception ex)
   {
    Mensajes.Error(ex.Message);
   }
 }
    public void click_btn_guardar(object sender, DirectEventArgs e)
    {
      try
      {

        string Tmensaje =ErrorText.REGISTRO_INGRESADO;

        co_at_atributos obj = new co_at_atributos();
        if (hid_id.Text != "0")
        {
          obj = new bf_at_atributos().GetData(Convert.ToInt32(hid_id.Text));
          Tmensaje = ErrorText.REGISTRO_MODIFICADO;
        }
        obj.atri_Tatributo = txt_atri_Tatributo.Text;
        int res_cmb_id_tipoDato = 0;
        if (Int32.TryParse(cmb_id_tipoDato.SelectedItem.Value, out res_cmb_id_tipoDato) && cmb_id_tipoDato.SelectedItem.Value != cmb_id_tipoDato.SelectedItem.Text)
        {
          obj.id_tipoDato.id = Convert.ToInt32(res_cmb_id_tipoDato);
        }
        int res_cmb_id_tabla = 0;
        if (Int32.TryParse(cmb_id_tabla.SelectedItem.Value, out res_cmb_id_tabla) && cmb_id_tabla.SelectedItem.Value != cmb_id_tabla.SelectedItem.Text)
        {
          obj.id_tabla.id = Convert.ToInt32(res_cmb_id_tabla);
        }
        obj.atri_Tsigla = (obj.id_tipoDato.id == Constantes.TIPO_SELECCION? "id_at_" : "at_") + txt_atri_Tatributo.Text.RemoveWhitespace();
        obj.atri_Nlargo = Convert.ToInt32(num_atri_Nlargo.Text);
        obj.atri_NanchoCaja = Convert.ToInt32(num_atri_NanchoCaja.Text);
        obj.atri_Nalto = Convert.ToInt32(num_atri_Nalto.Text);
        obj.atri_Nndecimales = Convert.ToInt32(num_atri_Nndecimales.Text);

        if (hid_id.Text == "0")
        {
          panelCenter.Reset();
        }

        obj = new bf_at_atributos().Save(obj);

        //

        Mensajes.Show("Mensaje", Tmensaje, MessageBox.Icon.INFO);
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }