internal static List <PermisoDto> Leer(GestorDePermisos gestor, int posicion, int cantidad, string filtro)
        {
            var filtros = new List <ClausulaDeFiltrado>();

            if (!filtro.IsNullOrEmpty())
            {
                filtros.Add(new ClausulaDeFiltrado {
                    Criterio = CriteriosDeFiltrado.contiene, Clausula = nameof(PermisoDto.Nombre), Valor = filtro
                });
            }

            var permisosDtm = gestor.LeerRegistrosPorNombre(posicion, cantidad, filtros);

            return(gestor.MapearElementos(permisosDtm).ToList());
        }
        private static PermisoDtm CrearPermisoFuncional(GestorDePermisos gestorDePermiso, string nombreDelPermiso, enumClaseDePermiso clase)
        {
            PermisoDtm permiso;
            var        gestorDeClase  = GestorDeClaseDePermisos.Gestor(gestorDePermiso.Contexto, gestorDePermiso.Mapeador);
            var        claseDePermiso = gestorDeClase.LeerRegistro(nameof(ClasePermisoDtm.Nombre), clase.ToString(), errorSiNoHay: false, errorSiHayMasDeUno: false, traqueado: false, conBloqueo: false, aplicarJoin: false);

            if (claseDePermiso == null)
            {
                claseDePermiso = gestorDeClase.Crear(clase);
            }


            var gestorDeTipo  = GestorDeTipoPermiso.Gestor(gestorDePermiso.Contexto, gestorDePermiso.Mapeador);
            var tipoDePermiso = gestorDeTipo.LeerRegistro(nameof(TipoPermisoDtm.Nombre), ModoDeAcceso.ToString(enumModoDeAccesoFuncional.Acceso), errorSiNoHay: false, errorSiHayMasDeUno: false, traqueado: false, conBloqueo: false, aplicarJoin: false);

            if (tipoDePermiso == null)
            {
                tipoDePermiso = gestorDeTipo.CrearTipoPermisoFuncional(enumModoDeAccesoFuncional.Acceso);
            }

            permiso = gestorDePermiso.Crear(nombreDelPermiso, tipoDePermiso, claseDePermiso);
            return(permiso);
        }
        protected override void DespuesDePersistir(PermisosDeUnRolDtm registro, ParametrosDeNegocio parametros)
        {
            base.DespuesDePersistir(registro, parametros);

            GestorDePermisos.ActualizarCachesDePermisos(Contexto, Mapeador, registro.IdPermiso);
        }
        public List <PermisoDto> LeerPermisos(int posicion, int cantidad, string filtro)
        {
            var gestor = GestorDePermisos.Gestor(Contexto, Mapeador);

            return(GestorDePermisos.Leer(gestor, posicion, cantidad, filtro));
        }