resolveCommandEntities method
Resolves the affected BlocxBaseEntity instances from input and output
to broadcast to eventHub.
Default resolution order:
- If
outputis a BlocxBaseEntity, returns[output]. - If
outputis a BlocxPage, returns its items. - If
outputis an Iterable, returns any BlocxBaseEntity elements. - If
inputis a BlocxBaseEntity (common for delete use cases whereOutputisbool), returns[input]. - If
inputis an Iterable (common for bulk delete use cases), returns any BlocxBaseEntity elements.
Override this when your use case uses a custom input/output wrapper.
Implementation
@protected
List<BlocxBaseEntity> resolveCommandEntities(Input input, Output output) {
if (output is BlocxBaseEntity) {
return <BlocxBaseEntity>[output];
}
if (output is BlocxPage) {
return output.items.whereType<BlocxBaseEntity>().toList();
}
if (output is Iterable) {
final list = output.whereType<BlocxBaseEntity>().toList();
if (list.isNotEmpty) return list;
}
if (input is BlocxBaseEntity) {
return <BlocxBaseEntity>[input];
}
if (input is Iterable) {
return input.whereType<BlocxBaseEntity>().toList();
}
return const <BlocxBaseEntity>[];
}