From 0326ab0534dffa478c2ca74552e52a9868e0062d Mon Sep 17 00:00:00 2001 From: mkslanc <mks-tech@ya.ru> Date: Thu, 8 Apr 2021 22:09:42 +0400 Subject: [PATCH] fixed item receiving from edge --- lib/MemriApp/CVU/resolving/CVULookupController.dart | 10 ++++++---- lib/MemriApp/Controllers/Database/ItemEdgeRecord.dart | 4 ++-- lib/MemriApp/Controllers/Database/ItemRecord.dart | 11 +++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/MemriApp/CVU/resolving/CVULookupController.dart b/lib/MemriApp/CVU/resolving/CVULookupController.dart index db740101..ecc4c3fb 100644 --- a/lib/MemriApp/CVU/resolving/CVULookupController.dart +++ b/lib/MemriApp/CVU/resolving/CVULookupController.dart @@ -514,10 +514,12 @@ class CVULookupController { .toList(); return LookupStepItems(await filter(result, subexpression, db)); } else { - List<ItemRecord> result = - (await Future.wait(items.map((item) async => await item.edgeItem(trimmedName, db)))) - .whereType<ItemRecord>() - .toList(); + List<ItemRecord> result = []; + await Future.forEach(items, (ItemRecord item) async { + var itemRecord = await item.edgeItem(trimmedName, db); + if (itemRecord != null) result.add(itemRecord); + }); + return LookupStepItems(await filter(result, subexpression, db)); } } else { diff --git a/lib/MemriApp/Controllers/Database/ItemEdgeRecord.dart b/lib/MemriApp/Controllers/Database/ItemEdgeRecord.dart index 6cee8173..71592b69 100644 --- a/lib/MemriApp/Controllers/Database/ItemEdgeRecord.dart +++ b/lib/MemriApp/Controllers/Database/ItemEdgeRecord.dart @@ -56,11 +56,11 @@ class ItemEdgeRecord { } Future<ItemRecord?> owningItem(DatabaseController db) async { - return await ItemRecord.fetchWithUID(sourceUID!, db); + return await ItemRecord.fetchWithRowID(sourceRowID!, db); } Future<ItemRecord?> targetItem(DatabaseController db) async { - return await ItemRecord.fetchWithUID(targetUID!, db); + return await ItemRecord.fetchWithRowID(targetRowID!, db); } /* diff --git a/lib/MemriApp/Controllers/Database/ItemRecord.dart b/lib/MemriApp/Controllers/Database/ItemRecord.dart index 562c78fe..a7580f18 100644 --- a/lib/MemriApp/Controllers/Database/ItemRecord.dart +++ b/lib/MemriApp/Controllers/Database/ItemRecord.dart @@ -145,6 +145,17 @@ class ItemRecord extends Equatable { } } + static Future<ItemRecord?> fetchWithRowID(int id, [DatabaseController? db]) async { + db ??= AppController.shared.databaseController; + try { + Item item = await db.databasePool.itemRecordFetchWithRowId(id); + return ItemRecord.fromItem(item); + } catch (e) { + print(e); + return null; + } + } + Future<int> insert(Database db) async { return await db.itemRecordInsert(this); } -- GitLab