Exemplo n.º 1
0
        /// <summary>
        /// Marca como activo el rol especificado
        /// </summary>
        /// <param name="id">ID del rol a activar</param>

        public void Reactivar(int id)
        {
            Rol oRol = _roles.BuscarPorId(id);

            if (oRol == null)
            {
                throw new Exception("No existe rol con ese ID");
            }

            if (DateTime.Compare(oRol.Tipo.Borrado, DateTime.Now) < 0)
            {
                throw new Exception("No se puede activar un rol cuyo tipo está desactivado");
            }

            if (DateTime.Compare(oRol.Usuario.Borrado, DateTime.Now) < 0)
            {
                throw new Exception("No se puede activar un rol cuyo usuario está desactivado");
            }

            if (oRol.Establecimiento != null)
            {
                if (DateTime.Compare(oRol.Establecimiento.Borrado, DateTime.Now) < 0)
                {
                    throw new Exception("No se puede activar un rol cuyo establecimiento está desactivado");
                }
            }

            if (oRol.Nivel != null)
            {
                if (DateTime.Compare(oRol.Nivel.Borrado, DateTime.Now) < 0)
                {
                    throw new Exception("No se puede activar un rol cuyo nivel está desactivado");
                }
            }

            if (_roles.TieneRolActivo(oRol.Usuario.Id, oRol.Tipo.Id))
            {
                throw new Exception("El usuario ya tiene ese rol activo");
            }

            _roles.Reactivar(id);
        }