onFail method

Future<bool> onFail(
  1. Data data, {
  2. int? code,
  3. String? message,
  4. Observable? onFailOverride,
})

Implementation

Future<bool> onFail(Data data,
    {int? code, String? message, Observable? onFailOverride}) async {
  // set data
  this.data = data;

  // set rowcount
  rowcount = this.data?.length ?? 0;

  // set status
  status = "error";

  // set status code
  statuscode = code;

  // set status message
  //statusmessage = (data == null) ? (message ?? '') : '';
  statusmessage = message ?? 'Error: $code';

  // log exception
  Log().exception(
      "$statusmessage [$statuscode] id: $id, object: 'DataBroker'");

  // fire on fail event
  if (onFailOverride != null || !isNullOrEmpty(onfail)) {
    EventHandler handler = EventHandler(this);
    await handler.execute(onFailOverride ?? _onfail);
  }

  // notify listeners
  for (IDataSourceListener listener in listeners) {
    listener.onDataSourceException(this, Exception(statusmessage));
  }

  // busy
  busy = false;

  // requery?
  if (((autoquery ?? 0) > 0) && (timer == null) && (!disposed)) {
    timer = Timer.periodic(Duration(seconds: autoquery!), onTimer);
  }

  return false;
}