saveImages method

  1. @override
Future<bool> saveImages()
override

Implementation

@override
Future<bool> saveImages() async {
  var progress = NsgProgressDialog(textDialog: tran.save_files);
  progress.show();
  var ids = <String>[];
  var table = NsgDataTable(owner: masterController!.selectedItem!, fieldName: tableFieldName);
  try {
    for (var img in files) {
      ids.add(img.id);
      if (img.isNew && img.id.isNotEmpty && (img.fileContent != null || img.filePath.isNotEmpty)) {
        //TODO: убрать imageFile
        File? imageFile = kIsWeb || img.filePath.isEmpty ? null : File(img.filePath);

        var pic = await fileObjectToDataItem(img, imageFile);
        if (!table.rows.any((e) => e.id == pic.id)) {
          table.rows.add(pic);
        }
      }
    }
    //Удаляем "лишние" картинки
    //TODO: УДАЛЕНИЕ ФАЙЛОВ!!!!!
    var itemsToDelete = table.rows.where((se) => !ids.contains(se.id)).toList();
    for (var row in itemsToDelete) {
      if (row.remoteProvider.newTableLogic) {
        row.docState = NsgDataItemDocState.deleted;
      } else {
        table.rows.remove(row);
      }
    }
    progress.hide();
    // Get.back();
  } catch (ex) {
    progress.hide();
    NsgErrorWidget.showError(ex as Exception);
    rethrow;
  }
  return true;
}