private static IEnumerable <KeyValuePair <string, TimerExecutorItem> > _getByAdvancedIntDataKey( this ConcurrentDictionary <string, TimerExecutorItem> store, TimerType timerType, TimerAdvancedDataKeys keyType, int dataKeyValue, Func <TimerExecutorItem, bool> predicateWhere = null) { if (dataKeyValue == 0) { return(default(IEnumerable <KeyValuePair <string, TimerExecutorItem> >)); } if (predicateWhere == null) { return(store._getByTymerType(timerType, i => _isEqualsKV(i, keyType, dataKeyValue))); } return(store._getByTymerType(timerType, i => _isEqualsKV(i, keyType, dataKeyValue) && predicateWhere(i))); }
private static bool _isEqualsKV <T>(TimerExecutorItem item, TimerAdvancedDataKeys keyType, T keyValue) { return(item.AdvancedData.ContainsKey(keyType) && Equals(item.AdvancedData[keyType], keyValue)); }
private static bool _isEqualsKV(TimerExecutorItem item, TimerAdvancedDataKeys keyType, int keyValue) { return(_isEqualsKV <int>(item, keyType, keyValue)); }
private static IEnumerable <KeyValuePair <string, TimerExecutorItem> > _getTaskTimerByIntKeyData(this ConcurrentDictionary <string, TimerExecutorItem> store, TimerAdvancedDataKeys keyType, int dataKey, Func <TimerExecutorItem, bool> predicateWhere = null) { return(store._getByAdvancedIntDataKey(TimerType.UserTask, keyType, dataKey, predicateWhere)); }