getHistoryEvents method

List<HistoryEvent> getHistoryEvents()

Implementation

List<HistoryEvent> getHistoryEvents() {
  return this!
      .factSchema
      .dates!
      .where((date) => date.isHistorical == true)
      .mapNotNull((metaDate) {
    final result = metaDate.isFlexible == true
        ? this!.getFlexiDate(metaDate)
        : this!.getDate(metaDate, sunnyLocalization.userLocation!);
    if (result == null) {
      return null;
    }
    if (result is FlexiDate) {
      return HistoryEvent.ofFlexiDate(
          sourceFact: this!, metaDate: metaDate, flexiDate: result);
    } else if (result is DateTime) {
      return HistoryEvent.ofDateTime(
          sourceFact: this!, metaDate: metaDate, date: result);
    } else {
      return illegalState<HistoryEvent>(
          "Expected FlexiDate or DateTime, but was ${result.runtimeType}");
    }
  }).toList();
}