package fi.otavanopisto.muikku.plugins.workspace;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import fi.otavanopisto.muikku.plugins.workspace.events.WorkspaceMaterialDeleteEvent;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterial;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialField;
import fi.otavanopisto.muikku.plugins.workspace.model.WorkspaceMaterialReply;
@ApplicationScoped
public class WorkspaceMaterialDeleteListener {
@Inject
private WorkspaceMaterialFieldController workspaceMaterialFieldController;
@Inject
private WorkspaceMaterialReplyController workspaceMaterialReplyController;
public void onWorkspaceMaterialDelete(@Observes WorkspaceMaterialDeleteEvent event) {
WorkspaceMaterial workspaceMaterial = event.getWorkspaceNode();
List<WorkspaceMaterialField> workspaceMaterialFields = workspaceMaterialFieldController.listWorkspaceMaterialFieldsByWorkspaceMaterial(workspaceMaterial);
for (WorkspaceMaterialField workspaceMaterialField : workspaceMaterialFields) {
workspaceMaterialFieldController.deleteWorkspaceMaterialField(workspaceMaterialField, event.getRemoveAnswers());
}
List<WorkspaceMaterialReply> workspaceMaterialReplies = workspaceMaterialReplyController.listWorkspaceMaterialRepliesByWorkspaceMaterial(workspaceMaterial);
for (WorkspaceMaterialReply workspaceMaterialReply : workspaceMaterialReplies) {
workspaceMaterialReplyController.deleteWorkspaceMaterialReply(workspaceMaterialReply);
}
}
}