postItems method
Implementation
Future postItems(List<NsgDataItem> itemsToPost, {bool showProgress = false}) async {
assert(
(this is! NsgDataItemController || (this as NsgDataItemController).widgetId != null),
'Использован неправильный контроллер для данного типа данных. $runtimeType != $dataType',
);
if (controllerMode.storageType == NsgDataStorageType.server) {
var p = NsgDataPost(dataItemType: dataType);
p.itemsToPost = itemsToPost;
var newItems = await p.postItems(loadReference: NsgDataRequest.addAllReferences(dataType));
for (var item in newItems) {
var old = itemsToPost.firstWhereOrNull((e) => e.id == item.id);
if (old != null) {
old.copyFieldValues(item);
old.state = NsgDataItemState.fill;
}
old = dataItemList.firstWhereOrNull((e) => e.id == item.id);
if (old != null) {
old.copyFieldValues(item);
old.state = NsgDataItemState.fill;
}
}
} else {
await NsgLocalDb.instance.postItems(itemsToPost);
}
}