requestItems method
Future<List<NsgDataItem> >
requestItems(
- NsgDataItem dataItem,
- NsgDataRequestParams params, {
- String tag = '',
Implementation
Future<List<NsgDataItem>> requestItems(NsgDataItem dataItem, NsgDataRequestParams params, {String tag = ''}) async {
var box = await getTable(dataItem.typeName);
var items = <NsgDataItem>[];
//определяем нет ли в запросе ограничения по id
var idList = <String>[];
_getIdFromCompare(idList, dataItem, params.compare);
if (idList.isEmpty) {
var valueMap = await box.getAllValues();
for (var mapKey in valueMap.keys) {
var item = NsgDataClient.client.getNewObject(dataItem.runtimeType);
item.fromJson(valueMap[mapKey]!.cast());
item.storageType = NsgDataStorageType.local;
if (params.compare.isValid(item)) {
items.add(item);
}
}
} else {
var valueMap = await box.getAll(idList);
for (var mapValue in valueMap) {
if (mapValue == null) continue;
var item = NsgDataClient.client.getNewObject(dataItem.runtimeType);
item.fromJson(mapValue.cast());
item.storageType = NsgDataStorageType.local;
if (params.compare.isValid(item)) {
items.add(item);
}
}
}
NsgDataClient.client.addItemsToCache(items: items, tag: tag);
return items;
}