public static void ActualizarCachesDePermisos(ContextoSe contexto, IMapper mapeador, int idPermiso)
        {
            var gestorDePermisos = Gestor(contexto, mapeador);

            if (idPermiso == 0)
            {
                ServicioDeCaches.EliminarCache($"{nameof(GestorDeVistaMvc)}.{nameof(GestorDeVistaMvc.TienePermisos)}");
                ServicioDeCaches.EliminarCache($"{nameof(GestorDeElementos)}.{nameof(ValidarPermisosDePersistencia)}");
                ServicioDeCaches.EliminarCache($"{nameof(GestorDeElementos)}.{nameof(LeerModoDeAccesoAlNegocio)}");
                ServicioDeCaches.EliminarCache(nameof(GestorDeArbolDeMenu.LeerArbolDeMenu));
            }
            else
            {
                var permiso = gestorDePermisos.LeerRegistroPorId(idPermiso, true, false, false, aplicarJoin: true);
                if (permiso.Clase.Nombre == ClaseDePermiso.ToString(enumClaseDePermiso.Vista))
                {
                    ServicioDeCaches.EliminarCache(nameof(GestorDeArbolDeMenu.LeerArbolDeMenu));
                }
                if (permiso.Clase.Nombre == ClaseDePermiso.ToString(enumClaseDePermiso.Negocio))
                {
                    ServicioDeCaches.EliminarCache($"{nameof(GestorDeElementos)}.{nameof(LeerModoDeAccesoAlNegocio)}");
                }

                var parteDeLaClave = $"Permiso:{idPermiso}";
                ServicioDeCaches.EliminarElementos($"{nameof(GestorDeVistaMvc)}.{nameof(GestorDeVistaMvc.TienePermisos)}", parteDeLaClave);
                ServicioDeCaches.EliminarElementos($"{nameof(GestorDeElementos)}.{nameof(ValidarPermisosDePersistencia)}", parteDeLaClave);
            }
        }
        protected virtual void DespuesDePersistir(TRegistro registro, ParametrosDeNegocio parametros)
        {
            var indice = typeof(TRegistro).FullName;

            _CacheDeRecuentos[indice] = true;

            var propiedades = registro.PropiedadesDelObjeto();

            foreach (var propiedad in propiedades)
            {
                if (typeof(TRegistro).ImplementaNombre() && propiedad.Name == nameof(INombre.Nombre))
                {
                    ServicioDeCaches.EliminarElemento(typeof(TRegistro).FullName, $"{nameof(INombre.Nombre)}-{registro.ValorPropiedad(nameof(INombre.Nombre))}-1");
                    ServicioDeCaches.EliminarElemento(typeof(TRegistro).FullName, $"{nameof(INombre.Nombre)}-{registro.ValorPropiedad(nameof(INombre.Nombre))}-0");
                }

                if (propiedad.Name == nameof(registro.Id))
                {
                    ServicioDeCaches.EliminarElemento(typeof(TRegistro).FullName, $"{nameof(registro.Id)}-{registro.Id}-1");
                    ServicioDeCaches.EliminarElemento(typeof(TRegistro).FullName, $"{nameof(registro.Id)}-{registro.Id}-0");
                }
            }

            ServicioDeCaches.EliminarCache($"{typeof(TRegistro).FullName}-ak");
        }
        public virtual void BorrarRegistros(IQueryable <TRegistro> registros)
        {
            var transaccion = Contexto.IniciarTransaccion();

            try
            {
                Contexto.RemoveRange(registros);
                Contexto.SaveChanges();
                Contexto.Commit(transaccion);
            }
            catch (Exception)
            {
                Contexto.Rollback(transaccion);
                throw;
            }
            finally
            {
                ServicioDeCaches.EliminarCache(typeof(TRegistro).FullName);
                ServicioDeCaches.EliminarCache($"{typeof(TRegistro).FullName}-ak");
            }
        }
Beispiel #4
0
        protected override void DespuesDePersistir(VistaMvcDtm registro, ParametrosDeNegocio parametros)
        {
            base.DespuesDePersistir(registro, parametros);
            var RegistroEnBD = ((VistaMvcDtm)parametros.registroEnBd);

            if (parametros.Operacion == enumTipoOperacion.Modificar && RegistroEnBD.Nombre != registro.Nombre)
            {
                GestorDePermisos.ModificarPermisoFuncional(Contexto, Mapeador, RegistroEnBD.Permiso, registro.Nombre, enumClaseDePermiso.Vista);
            }

            if (parametros.Operacion == enumTipoOperacion.Eliminar)
            {
                GestorDePermisos.Eliminar(Contexto, Mapeador, RegistroEnBD.Permiso);
            }

            if (parametros.Operacion == enumTipoOperacion.Eliminar || parametros.Operacion == enumTipoOperacion.Modificar)
            {
                ServicioDeCaches.EliminarElemento(nameof(LeerVistaMvc), $"{registro.Controlador}.{ registro.Accion}");
                ServicioDeCaches.EliminarElemento(nameof(ExtensionesDto.UrlParaMostrarUnDto), registro.ElementoDto);
            }

            ServicioDeCaches.EliminarCache(nameof(GestorDeArbolDeMenu.LeerArbolDeMenu));
        }
 protected override void DespuesDePersistir(MenuDtm registro, ParametrosDeNegocio parametros)
 {
     base.DespuesDePersistir(registro, parametros);
     ServicioDeCaches.EliminarCache(nameof(GestorDeArbolDeMenu.LeerArbolDeMenu));
 }
Beispiel #6
0
 internal void LimpiarCacheDeArbolDeMenu()
 {
     ServicioDeCaches.EliminarCache(nameof(this.LeerArbolDeMenu));
 }