getUuidOfLastService method

String? getUuidOfLastService(
  1. {required int servId,
  2. required int contractId}
)

Helper, only used in ClientService, it delete last ServiceOfJournal.

Note: it delete services in this order:

  • rejected,
  • stalled,
  • finished,
  • outdated.

Implementation

String? getUuidOfLastService({
  required int servId,
  required int contractId,
}) {
  try {
    final servList = all.where(
      (element) =>
          element.servId == servId && element.contractId == contractId,
    );
    final serv = servList.lastWhere(
      (element) => element.state == ServiceState.rejected,
      orElse: () => servList.lastWhere(
        (element) => element.state == ServiceState.added,
        orElse: () => servList.lastWhere(
          (element) => element.state == ServiceState.finished,
          orElse: () => servList.lastWhere(
            (element) => element.state == ServiceState.outDated,
          ),
        ),
      ),
    );
    final uid = serv.uid;

    return uid;
    // ignore: avoid_catching_errors
  } on StateError catch (e) {
    log.severe(
      'Error: $e, can not delete service #$servId of contract #$contractId',
    );
  }

  return null;
}