TModelDocs<DTO extends TWriteableId, MODEL extends TModel<DTO>>.fromDtos constructor

TModelDocs<DTO extends TWriteableId, MODEL extends TModel<DTO>>.fromDtos({
  1. required List<DTO> dtos,
  2. required TModelBuilderDef<DTO, MODEL> modelBuilder,
  3. TSortFilteredListsMap<DTO, MODEL>? sortFilteredListsMap,
})

Implementation

factory TModelDocs.fromDtos({
  required List<DTO> dtos,
  required TModelBuilderDef<DTO, MODEL> modelBuilder,
  TSortFilteredListsMap<DTO, MODEL>? sortFilteredListsMap,
}) {
  final idMap = <String, MODEL>{};
  final models = <MODEL>[];
  for (final dto in dtos) {
    final model = modelBuilder(dto);
    models.add(model);
    idMap[model.id] = model;
  }
  final pSortFilteredListsMap =
      sortFilteredListsMap ?? <String, TSortFilteredList<DTO, MODEL>>{};
  for (final sortFilteredList in pSortFilteredListsMap.values) {
    sortFilteredList.apply(models);
  }
  return TModelDocs<DTO, MODEL>(
    idMap: idMap,
    modelBuilder: modelBuilder,
    sortFilteredListsMap: pSortFilteredListsMap,
  );
}