private co_ca_usuariosperfiles CompletaValoresUsuarioPerfil(string id_usuarioperfil)
 {
   try
   {
     int id = id_usuarioperfil.ValidaEntero("Id Usuario Perfil");
     co_ca_usuariosperfiles usuarioPerfil = new bf_ca_usuariosperfiles().GetData(id);
     if (usuarioPerfil.id_usuarioperfil!=0)
     {
       return usuarioPerfil;
     }
     return usuarioPerfil;
   }
   catch (Exception)
   {
     throw;
   }
 }
    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;
      }
    }
    private void Desasocia(int id_perfil)
    {
      try
      {
        int id_usuario = hid_id_usuario.Text.ValidaEntero(hid_id_usuario.FieldLabel);
        co_ca_usuariosperfiles usuariosperfiles = new co_ca_usuariosperfiles();
        usuariosperfiles.id_perfil.id = id_perfil;
        usuariosperfiles.id_usuario.id = id_usuario;

        var list = new bf_ca_usuariosperfiles().GetData(usuariosperfiles);
        if (list.Any() && list.Count()==1)
        {
          new bf_ca_usuariosperfiles().Delete(list.FirstOrDefault().id_usuarioperfil);
        }
      }
      catch (Exception)
      {
        Mensajes.Error(ErrorText.ERROR_BORRAR_REGISTRO);
      }
    }
    private void Asocia(int id_perfil)
    {
      try
      {
        int id_usuario = hid_id_usuario.Text.ValidaEntero(hid_id_usuario.FieldLabel);
        co_ca_usuariosperfiles usuariosperfiles = new co_ca_usuariosperfiles();
        usuariosperfiles.id_perfil.id = id_perfil;
        usuariosperfiles.id_usuario.id = id_usuario;

        usuariosperfiles = new bf_ca_usuariosperfiles().Save(usuariosperfiles);

      }
      catch (Exception)
      {
        Mensajes.Error(ErrorText.ERROR_GUARDAR_REGISTRO);
      }
    }
 public void CargarPerfiles()
 {
   try
   {
     int id_usuario = hidIdUsuario.Text.ValidaEntero(hidIdUsuario.Text);
     IList<co_ca_usuariosperfiles> ListUsuarioPerfiles = new bf_ca_usuariosperfiles().GetData(
       new co_ca_usuariosperfiles { id_usuario = { id = id_usuario } });
     IList<co_ca_perfiles> listPerfiles = ListUsuarioPerfiles.Select(usuariosperfiles =>
       new co_ca_perfiles
         {
           id_perfil = usuariosperfiles.id_perfil.id,
           pe_perfil = usuariosperfiles.id_perfil.descripcion
         }).ToList();
     cmbPerfil.GetStore().DataSource = listPerfiles;
     cmbPerfil.GetStore().DataBind();
     cmbPerfil.SetValueAndFireSelect(listPerfiles.FirstOrDefault().id_perfil);
   }
   catch (Exception ex)
   {
     Mensajes.Error(ex.Message);
   }
 }
    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);
      }
    }
    protected void st_grillaPerfiles_OnReadData(object sender, StoreReadDataEventArgs e)
    {
      try
      {
        int id_usuario = e.Parameters.GetParameter("id_usuario").Value.ToString().ValidaEntero("Id Usuario");

        IList<co_ca_usuariosperfiles> listPerfiles = new bf_ca_usuariosperfiles().GetData(new co_ca_usuariosperfiles { id_usuario = { id = id_usuario } });
        IList<object> list = new List<object>();

        foreach (co_ca_usuariosperfiles perfil in listPerfiles)
        {
          list.Add(new
            {
              id_perfil = perfil.id_perfil.id,
              pe_perfil = perfil.id_perfil.descripcion,
              id_usuarioperfil = perfil.id_usuarioperfil
            });
        }

        btnAsociarPerfil.Disabled = false;
        st_grillaPerfiles.DataSource = list;
        st_grillaPerfiles.DataBind();
      }
      catch (Exception ex)
      {
        Mensajes.Error(ex.Message);
      }
    }