put method

Future<void> put(
  1. Iterable<T> events
)

Adds a list of events, possibly overriding already existing events.

Implementation

Future<void> put(Iterable<T> events) async {
  var map = _mapIds(events.toList());
  var storedEvents = await store.getStoredEvents();
  var actualEvents = <ForeignEventId, Event>{};
  actualEvents.addAll(Map.fromEntries(storedEvents.entries.where((element) => map.containsKey(element.key)).map((e) {
    var tInstance = map[e.key] as T;
    return MapEntry(e.key, eventBuilder(tInstance, calendar.id!, e.value));
  })));
  actualEvents.addAll(Map.fromEntries(map.entries.where((element) => !storedEvents.containsKey(element.key)).map((e) {
    var tInstance = map[e.key] as T;
    return MapEntry(e.key, eventBuilder(tInstance, calendar.id!, null));
  })));
  parent.addInternal(actualEvents, store);
}