1
2
3
4
5
6 package fr.paris.lutece.plugins.crm.modules.mydashboardfavorites.listener;
7
8 import fr.paris.lutece.plugins.crm.business.demand.DemandType;
9 import fr.paris.lutece.plugins.crm.modules.mydashboardfavorites.service.FavoritesSubscriptionProviderService;
10 import fr.paris.lutece.plugins.crm.util.IListenerDemandType;
11 import fr.paris.lutece.plugins.crm.util.constants.CRMConstants;
12 import fr.paris.lutece.plugins.subscribe.business.Subscription;
13 import fr.paris.lutece.plugins.subscribe.business.SubscriptionFilter;
14 import fr.paris.lutece.plugins.subscribe.service.SubscriptionService;
15 import fr.paris.lutece.portal.service.util.AppLogService;
16 import java.util.List;
17
18
19
20
21
22 public class ListenerFavoritesRemoval implements IListenerDemandType {
23
24 @Override
25 public void notifyListener(DemandType demandType,String strEventName){
26
27 if ( strEventName.equals( CRMConstants.EVENT_CRM_DEMAND_TYPE_REMOVED ) )
28 if ( demandType != null ){
29 int nIdDemandType = demandType.getIdDemandType( );
30 SubscriptionFilter sFilter = new SubscriptionFilter( );
31 sFilter.setIdSubscribedResource( Integer.toString( nIdDemandType ) );
32 sFilter.setSubscriptionProvider( FavoritesSubscriptionProviderService.getInstance( ).getProviderName( ) );
33 List<Subscription> listSubscriptionFavorites = SubscriptionService.getInstance( ).findByFilter( sFilter );
34 AppLogService.debug( "Deletion of all favorites attached to CRM demand type " + nIdDemandType );
35 for (Subscription sub : listSubscriptionFavorites)
36 {
37 SubscriptionService.getInstance( ).removeSubscription( sub, false);
38 }
39 }
40 }
41 }