get method Null safety
- dynamic productList
Loads the barcodes AND all the products.
Implementation
Future<void> get(final ProductList productList) async {
final _BarcodeList? list = _get(productList);
final List<String> barcodes = <String>[];
final Map<String, Product> products = <String, Product>{};
productList.totalSize = list?.totalSize ?? 0;
if (list == null || list.barcodes.isEmpty) {
productList.set(barcodes, products);
return;
}
final DaoProduct daoProduct = DaoProduct(localDatabase);
for (final String barcode in list.barcodes) {
try {
final Product? product = await daoProduct.get(barcode);
if (product != null) {
barcodes.add(barcode);
products[barcode] = product;
} else {
debugPrint('unexpected: unknown product for $barcode');
}
} catch (e) {
debugPrint('unexpected: exception for product $barcode');
}
}
productList.set(barcodes, products);
}