notifySubscriptionsWithLocalData<TModel extends TRepositoryModel>  method 
- @protected
 - @visibleForTesting
 - @visibleForOverriding
 
- bool notifyWhenEmpty = true,
 - Map<
Query?, StreamController< ? subscriptionsByQuery,List< >T> > 
inherited
    Iterate through subscriptions after an upsert and notify any subscribe listeners.
Implementation
@protected
@visibleForTesting
@visibleForOverriding
Future<void> notifySubscriptionsWithLocalData<TModel extends TRepositoryModel>({
  bool notifyWhenEmpty = true,
  Map<Query?, StreamController<List<TRepositoryModel>>>? subscriptionsByQuery,
}) async {
  final queriesControllers = (subscriptionsByQuery ?? subscriptions[TModel])?.entries;
  if (queriesControllers?.isEmpty ?? true) return;
  // create a copy of the controllers to avoid concurrent modification while looping
  final cachedControllers =
      List<MapEntry<Query?, StreamController<List<TRepositoryModel>>>>.from(queriesControllers!);
  for (final queryController in cachedControllers) {
    final query = queryController.key;
    final controller = queryController.value;
    if (controller.isClosed || controller.isPaused) continue;
    if (query == null || memoryCacheProvider.canFind<TModel>(query)) {
      final results = memoryCacheProvider.get<TModel>(query: query);
      if (!controller.isClosed && (results?.isNotEmpty ?? false)) controller.add(results!);
    }
    final existsInSqlite = await sqliteProvider.exists<TModel>(query: query, repository: this);
    if (existsInSqlite) {
      final results = await sqliteProvider.get<TModel>(query: query, repository: this);
      if (!controller.isClosed) controller.add(results);
    } else if (notifyWhenEmpty) {
      if (!controller.isClosed) controller.add(<TModel>[]);
    }
  }
}