remove static method

bool remove(
  1. IResource resource
)

Implementation

static bool remove(IResource resource) {
  if (resource.instance == null) return false;

  if (_resources.containsKey(resource.instance?.id))
    _resources.remove(resource.instance?.id);
  else
    return false;

  if (resource is IStore) {
    _stores.remove(resource);

    // remove all objects associated with the store
    var toBeRemoved =
        _resources.values.where((x) => x.instance?.store == resource);
    for (var o in toBeRemoved) remove(o);

    // StoreDisconnected?.Invoke(resource as IStore);
  }

  if (resource.instance?.store != null)
    resource.instance?.store?.remove(resource);

  resource.destroy();

  return true;
}