findDupsById method

TwoLists<ContactWeebi> findDupsById({
  1. required List<ContactWeebi> newList,
})

Implementation

TwoLists<ContactWeebi> findDupsById({required List<ContactWeebi> newList}) {
  if (isEmpty) {
    return TwoLists(noDups: newList, dups: <ContactWeebi>[]);
  }
  final oldListIds = map((e) => e.id);
  final newListIds = newList.map((e) => e.id);
  final noDups = <ContactWeebi>[];
  final dups = <ContactWeebi>[];
  for (final newId in newListIds) {
    if (oldListIds.contains(newId) == false) {
      noDups.add(newList.firstWhere((e) => e.id == newId));
    } else {
      dups.add(newList.firstWhere((e) => e.id == newId));
    }
  }

  return TwoLists(noDups: noDups, dups: dups);
}