ModelsJsonBloc constructor
ModelsJsonBloc(
- AppModel app
Implementation
ModelsJsonBloc(
this.app,
) : super(ModelsJsonUninitialised()) {
on<ModelsJsonInitialiseEvent>((event, emit) async {
emit(ModelsJsonInitialised());
});
on<ModelsJsonConstructJsonEvent>((event, emit) async {
emit(ModelsJsonInitialised());
// Now run all tasks
var tasks = await event.retrieveTasks();
addTasks(tasks, app, event);
var progressManager = ProgressManager(
tasks.length, (progress) => add(ModelsJsonProgressedEvent(progress)));
int i = 0;
for (var task in tasks) {
i++;
try {
await task();
} catch (e) {
print('Exception running task $i, error: $e');
}
progressManager.progressedNextStep();
}
});
on<ModelsJsonProgressedEvent>((event, emit) async {
if (state is ModelsAndJsonAvailableAsMemberMedium) return;
if (state is ModelsAndJsonAvailableInClipboard) return;
if (state is ModelsAndJsonError) return;
emit(ModelsJsonProgressed(
event.progress,
event.dataContainer,
));
});
on<ModelsAndJsonAvailableInClipboardEvent>((event, emit) async {
emit(ModelsAndJsonAvailableInClipboard());
});
on<ModelsAndJsonErrorEvent>((event, emit) async {
emit(ModelsAndJsonError(event.message));
});
on<ModelsAndJsonAvailableAsMemberMediumEvent>((event, emit) async {
emit(ModelsAndJsonAvailableAsMemberMedium(event.memberMediumModel));
});
}