public void btnGuardar_Click(object sender, DirectEventArgs e)
    {
      try
      {
        co_ca_perfiles per = new co_ca_perfiles();
        if (hid_id.Text!="0")
        {
          per = new bf_ca_perfiles().GetData(hid_id.Text.ValidaEntero(hid_id.FieldLabel));
        }

        per.pe_perfil = txt_pe_perfil.Text;
        per.pe_descripcion = txt_pe_descripcion.Text;
        per.pe_esvigente = EstadosRegistros.ConvertirAEstadosRegistros(chk_pe_esvigente.Value);
        per.pe_orden = 0;

        per = new bf_ca_perfiles().Save(per);
        if (per.id != 0)
        {
          frmPanel.Reset();
        }
        Mensajes.Show("Mensaje", ErrorText.REGISTRO_INGRESADO, "CloseIframe();",MessageBox.Icon.INFO);
      }
      catch (Exception)
      {
        Mensajes.Error(ErrorText.ERROR_GUARDAR_REGISTRO);
      }
    }
 private void CompletarValores(string id)
 {
   try
   {
     co_ca_perfiles obj = new bf_ca_perfiles().GetData(Convert.ToInt32(id));
     txt_pe_perfil.Text = obj.pe_perfil;
     chk_pe_esvigente.Value = EstadosRegistros.ConvertirABool(obj.pe_esvigente);
     txt_pe_descripcion.Text = obj.pe_descripcion;
   }
   catch (Exception)
   {
     Mensajes.Error(ErrorText.ERROR_CARGAR_PERFIL);
   }
 }
    protected void strPerfiles_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_ca_perfiles_no Nomina = new co_ca_perfiles_no();
        Nomina.Pagina = page;
        Nomina.RegistrosPorPaginas = limit;
        Nomina.ColumnaOrden = e.Sort[0].Property;
        Nomina.OrdenColumna =
          (FwpServerControls.FwpDataGridDataBound.Orden)
          Enum.Parse(typeof(FwpServerControls.FwpDataGridDataBound.Orden), e.Sort[0].Direction.ToString(), true);

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

        AgregarFiltros(ref Nomina);

        Nomina<co_ca_perfiles_no> data = new bf_ca_perfiles().GetNomina(Nomina);

        foreach (co_ca_perfiles_no no in data.DataSource)
        {
          lista.Add(new
            {
              id_perfil = no.id_perfil,
              pe_perfil = no.pe_perfil,
              pe_descripcion = no.pe_descripcion,
              pe_esvigente = no.pe_esvigente,
              pe_orden = no.pe_orden
            });
        }

        strPerfiles.DataSource = lista;
        strPerfiles.PageSize = limit;
        PageProxy pageProxy = strPerfiles.Proxy[0] as PageProxy;
        if (pageProxy != null) pageProxy.Total = data.Registros;
        strPerfiles.DataBind();

      }
      catch (Exception)
      {
        Mensajes.Error(ErrorText.ERROR_LIST_PERFILES);
      }
    }
    private void CompletarValoresUsuario(string id_usuario)
    {
      try
      {
        int idUsu = id_usuario.ValidaEntero("id_usuario");
        IList<co_ca_usuariosperfiles> listPerfilesNoUsua = new List<co_ca_usuariosperfiles>();
        IList<co_ca_perfiles> listPerfiles = new bf_ca_perfiles().GetData(new co_ca_perfiles());
        IList<co_ca_usuariosperfiles> listUsuaPerfiles = new bf_ca_usuariosperfiles().GetData(
            new co_ca_usuariosperfiles { id_usuario = { id = idUsu } });
        foreach (co_ca_perfiles perfil in listPerfiles)
        {
          bool sw = true;
          co_ca_perfiles perfil1 = perfil;
          foreach (co_ca_usuariosperfiles perfilNoUsua in listUsuaPerfiles.Where(c=>c.id_perfil.id==perfil1.id_perfil).Select(perfilUsuario => new co_ca_usuariosperfiles()))
          {
            sw = false;
          }
          if (sw)
          {
            co_ca_usuariosperfiles perfilNoUsua= new co_ca_usuariosperfiles();
            perfilNoUsua.id_perfil.id = perfil1.id_perfil;
            perfilNoUsua.id_perfil.descripcion = perfil1.pe_perfil;
            listPerfilesNoUsua.Add(perfilNoUsua);  
          }
          
        }


        IList<object> perfilesDisponibles = new List<object>();
        foreach (co_ca_usuariosperfiles coCaUsuariosperfilese in listUsuaPerfiles)
        {
          perfilesDisponibles.Add(new { id_perfil = coCaUsuariosperfilese.id_perfil.id, descripcion = coCaUsuariosperfilese.id_perfil.descripcion });
        }

        grdPerfilesNoDisponibles.GetStore().DataSource = perfilesDisponibles;
        grdPerfilesNoDisponibles.GetStore().DataBind();


        IList<object> perfilesNoDisponibles = new List<object>();
        foreach (co_ca_usuariosperfiles coCaUsuariosperfilese in listPerfilesNoUsua)
        {
          perfilesNoDisponibles.Add(new { id_perfil = coCaUsuariosperfilese.id_perfil.id, descripcion = coCaUsuariosperfilese.id_perfil.descripcion });
        }

        grdPerfilesDisponibles.GetStore().DataSource = perfilesNoDisponibles;
        grdPerfilesDisponibles.GetStore().DataBind();



      }
      catch (Exception)
      {
        throw;
      }
    }
    protected void CargaPerfiles(object sender, DirectEventArgs eventArgs)
    {
      try
      {
        IList<co_ca_usuariosperfiles> up = new bf_ca_usuariosperfiles().
          GetData(new co_ca_usuariosperfiles { id_usuario = { id = FWPConfiguration.get_ID_User(Session.SessionID) } });
        co_ca_perfiles perfil = new bf_ca_perfiles().GetData(FWPConfiguration.get_Perfil(Session.SessionID));
        Menu menu = new Menu();
        foreach (co_ca_usuariosperfiles usuper in up)
        {
          CheckMenuItem item = new CheckMenuItem();
          item.Text = usuper.id_perfil.descripcion;
          item.Group = "perfil";
          item.CheckHandler = "function(item, checked) {checked && #{btnPerfil}.setText('" + usuper.id_perfil.descripcion + "');}";
          if (perfil.id_perfil == usuper.id_perfil.id)
          {
            item.Checked = true;
          }
          item.DirectEvents.Click.Event += OnCheckedChangedPerfil;
          Parameter idPerfil = new Parameter("idPerfil", usuper.id_perfil.id.ToString());
          Parameter descripcion = new Parameter("descripcion", usuper.id_perfil.descripcion);
          item.DirectEvents.Click.ExtraParams.Add(idPerfil);
          item.DirectEvents.Click.ExtraParams.Add(descripcion);
          menu.Add(item);
        }

        btnPerfil.Text = perfil.pe_descripcion;
        btnPerfil.Menu.Add(menu);
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }