void RemoveListeners(ListenerInfo listenerInfo) { List <IXpandJobDetail> jobDetails = GetRelatedJobDetails(ForTheSameJobTypeOrGroup(listenerInfo.JobType, listenerInfo.Group)); Func <JobDataMap, List <JobKey> > calculateJobListenerNames; Action <JobDataMap, List <JobKey> > listenersKeyAction; if (listenerInfo.ListenerEvent is JobListenerEvent) { var jobListenerEvent = (JobListenerEvent)listenerInfo.ListenerEvent; listenersKeyAction = CreateJobListenersKeys(jobListenerEvent); calculateJobListenerNames = CalculateJobListenerNames(jobListenerEvent); } else { var triggerListenerEvent = (TriggerListenerEvent)listenerInfo.ListenerEvent; listenersKeyAction = CreateTriggerListenersKeys(triggerListenerEvent); calculateJobListenerNames = CalculateTriggerListenerNames(triggerListenerEvent); } jobDetails.ForEach(detail => GetListenerDataMap(detail, RemoveListener, listenerInfo.JobName, listenerInfo.OriginType, calculateJobListenerNames, listenersKeyAction)); }
void RemoveListeners(ListenerInfo listenerInfo) { List<IXpandJobDetail> jobDetails = GetRelatedJobDetails(ForTheSameJobTypeOrGroup(listenerInfo.JobType, listenerInfo.Group)); Func<JobDataMap, List<JobKey>> calculateJobListenerNames; Action<JobDataMap, List<JobKey>> listenersKeyAction; if (listenerInfo.ListenerEvent is JobListenerEvent) { var jobListenerEvent = (JobListenerEvent)listenerInfo.ListenerEvent; listenersKeyAction = CreateJobListenersKeys(jobListenerEvent); calculateJobListenerNames = CalculateJobListenerNames(jobListenerEvent); } else { var triggerListenerEvent = (TriggerListenerEvent)listenerInfo.ListenerEvent; listenersKeyAction = CreateTriggerListenersKeys(triggerListenerEvent); calculateJobListenerNames = CalculateTriggerListenerNames(triggerListenerEvent); } jobDetails.ForEach(detail => GetListenerDataMap(detail, RemoveListener, listenerInfo.JobName, listenerInfo.OriginType, calculateJobListenerNames, listenersKeyAction)); }