@ -4,6 +4,10 @@ using System.Threading.Tasks;
using Volo.Abp.DependencyInjection ;
using Volo.Abp.DependencyInjection ;
using Volo.Abp.Domain.Entities.Events ;
using Volo.Abp.Domain.Entities.Events ;
using Volo.Abp.EventBus ;
using Volo.Abp.EventBus ;
using Volo.Abp.Features ;
using Volo.Abp.GlobalFeatures ;
using Volo.CmsKit.Features ;
using Volo.CmsKit.GlobalFeatures ;
using Volo.CmsKit.Pages ;
using Volo.CmsKit.Pages ;
namespace Volo.CmsKit.Menus ;
namespace Volo.CmsKit.Menus ;
@ -12,19 +16,32 @@ public class PageChangedHandler :
ILocalEventHandler < EntityUpdatedEventData < Page > > ,
ILocalEventHandler < EntityUpdatedEventData < Page > > ,
ITransientDependency
ITransientDependency
{
{
protected IFeatureChecker FeatureChecker { get ; set ; }
protected IMenuItemRepository MenuRepository { get ; }
protected IMenuItemRepository MenuRepository { get ; }
protected MenuItemManager MenuManager { get ; }
protected MenuItemManager MenuManager { get ; }
public PageChangedHandler (
public PageChangedHandler (
IFeatureChecker featureChecker ,
IMenuItemRepository menuRepository ,
IMenuItemRepository menuRepository ,
MenuItemManager menuManager )
MenuItemManager menuManager )
{
{
FeatureChecker = featureChecker ;
MenuRepository = menuRepository ;
MenuRepository = menuRepository ;
MenuManager = menuManager ;
MenuManager = menuManager ;
}
}
public async Task HandleEventAsync ( EntityUpdatedEventData < Page > eventData )
public async Task HandleEventAsync ( EntityUpdatedEventData < Page > eventData )
{
{
if ( ! GlobalFeatureManager . Instance . IsEnabled < MenuFeature > ( ) )
{
return ;
}
if ( ! await FeatureChecker . IsEnabledAsync ( CmsKitFeatures . MenuEnable ) )
{
return ;
}
// TODO: Write a repository query.
// TODO: Write a repository query.
var allMenuItems = await MenuRepository . GetListAsync ( ) ;
var allMenuItems = await MenuRepository . GetListAsync ( ) ;