View Javadoc
1   /*
2    * To change this license header, choose License Headers in Project Properties.
3    * To change this template file, choose Tools | Templates
4    * and open the template in the editor.
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   * Listener for removal of favorites when a crm demand type is deleted
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  }