save method

Future<bool> save()

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;
}