package fi.otavanopisto.muikku.plugins.timed.notifications;
import java.util.Collection;
import java.util.Collections;
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Any;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
import fi.otavanopisto.muikku.model.users.EnvironmentRoleArchetype;
import fi.otavanopisto.muikku.plugins.timed.notifications.dao.RequestedAssessmentSupplementationNotificationDAO;
import fi.otavanopisto.muikku.plugins.timed.notifications.model.RequestedAssessmentSupplementationNotification;
import fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier;
import fi.otavanopisto.muikku.search.SearchProvider;
import fi.otavanopisto.muikku.search.SearchResult;
@Dependent
public class RequestedAssessmentSupplementationsNotificationController {
@Inject
@Any
private Instance<SearchProvider> searchProviders;
@Inject
private RequestedAssessmentSupplementationNotificationDAO requestedAssessmentSupplementationNotificationDAO;
public SearchResult searchActiveStudentIds(Collection<Long> groups, int firstResult, int maxResults){
SearchProvider searchProvider = getProvider("elastic-search");
return searchProvider.searchUsers(null, null, Collections.singleton(EnvironmentRoleArchetype.STUDENT), groups, null, null, false, true, false,
firstResult, maxResults, Collections.singleton("id"));
}
public RequestedAssessmentSupplementationNotification createRequestedAssessmentSupplementationNotification(SchoolDataIdentifier studentIdentifier, SchoolDataIdentifier workspaceIdentifier){
return requestedAssessmentSupplementationNotificationDAO.create(studentIdentifier.toId(), workspaceIdentifier.toId());
}
public long countByStudentIdentifierAndWorkspaceIdentifier(SchoolDataIdentifier studentIdentifier, SchoolDataIdentifier workspaceIdentifier){
return requestedAssessmentSupplementationNotificationDAO.countByStudentIdentifierAndWorkspaceIdentifier(studentIdentifier.toId(), workspaceIdentifier.toId());
}
private SearchProvider getProvider(String name) {
for (SearchProvider searchProvider : searchProviders) {
if (name.equals(searchProvider.getName())) {
return searchProvider;
}
}
return null;
}
}