public void Agregar(Familia familia, Permiso hijo)
        {
            if (familia.Buscar(hijo))
            {
                throw new InvalidOperationException("El permiso que desea agregar ya existe");
            }

            if (hijo.Buscar(familia))
            {
                throw new InvalidCastException("No puede crear dependencias circulares");
            }

            familia.Agregar(hijo);

            using (IUnitOfWork unitOfWork = UnitOfWorkFactory.Create())
            {
                PermisoDAL permisoDAL = new PermisoDAL(unitOfWork);
                permisoDAL.Agregar(familia, hijo);
                unitOfWork.SaveChanges();
            }
        }