save method
Creates or updates the room, then saves its photos. Returns true when the dialog can close.
Implementation
Future<bool> save() async {
final String? dormId = formDorm?.id ?? editing?.dormId;
if (dormId == null) {
UToast.error(message: U.s.pleaseSelectAItem(U.s.dorm));
return false;
}
final UDormRoomUpdateParams p = UDormRoomUpdateParams(
id: editing?.id ?? "",
tags: tags,
title: titleController.text.trim(),
dormId: dormId,
description: descriptionController.text.nullIfEmpty(),
capacity: intOf(capacityController) ?? 0,
floor: intOf(floorController),
);
final Object? ok = await send(
editing == null ? UServices.hotel.createDormRoom(p: UDormRoomCreateParams.fromMap(p.toMap()..remove("id"))) : UServices.hotel.updateDormRoom(p: p),
() {},
);
if (ok == null) return false;
await UServices.media.syncGallery(photos, existing: media, dormRoomId: editing?.id ?? (ok as UResponse<String>).result);
unawaited(read());
return true;
}