/** * <a href="http://www.openolat.org"> * OpenOLAT - Online Learning and Training</a><br> * <p> * Licensed under the Apache License, Version 2.0 (the "License"); <br> * you may not use this file except in compliance with the License.<br> * You may obtain a copy of the License at the * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> * <p> * Unless required by applicable law or agreed to in writing,<br> * software distributed under the License is distributed on an "AS IS" BASIS, <br> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> * See the License for the specific language governing permissions and <br> * limitations under the License. * <p> * Initial code contributed and copyrighted by<br> * frentix GmbH, http://www.frentix.com * <p> */ package org.olat.modules.coach.manager; import java.util.Collections; import java.util.List; import java.util.Locale; import org.olat.basesecurity.GroupRoles; import org.olat.core.id.Identity; import org.olat.course.assessment.UserEfficiencyStatement; import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.modules.coach.CoachingService; import org.olat.modules.coach.model.CourseStatEntry; import org.olat.modules.coach.model.EfficiencyStatementEntry; import org.olat.modules.coach.model.GroupStatEntry; import org.olat.modules.coach.model.SearchCoachedIdentityParams; import org.olat.modules.coach.model.StudentStatEntry; import org.olat.repository.RepositoryEntry; import org.olat.user.propertyhandlers.UserPropertyHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * * Description:<br> * * <P> * Initial Date: 8 févr. 2012 <br> * * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com */ @Service public class CoachingServiceImpl implements CoachingService { @Autowired private CoachingDAO coachingDao; @Autowired private BusinessGroupService businessGroupService; @Override public boolean isCoach(Identity coach) { return coachingDao.isCoach(coach); } @Override public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student) { return coachingDao.getStudentsCourses(coach, student); } @Override public List<StudentStatEntry> getUsersStatistics(SearchCoachedIdentityParams params, List<UserPropertyHandler> userPropertyHandlers) { return coachingDao.getUsersStatisticsNative(params, userPropertyHandlers); } @Override public List<StudentStatEntry> getStudentsStatistics(Identity coach, List<UserPropertyHandler> userPropertyHandlers) { return coachingDao.getStudentsStatisticsNative(coach, userPropertyHandlers); } @Override public List<RepositoryEntry> getUserCourses(Identity student) { return coachingDao.getUserCourses(student); } @Override public List<CourseStatEntry> getCoursesStatistics(Identity coach) { return coachingDao.getCoursesStatisticsNative(coach); } @Override public List<GroupStatEntry> getGroupsStatistics(Identity coach) { return coachingDao.getGroupsStatisticsNative(coach); } @Override public List<EfficiencyStatementEntry> getGroup(BusinessGroup group, List<UserPropertyHandler> userPropertyHandlers, Locale locale) { List<Identity> students = businessGroupService.getMembers(group, GroupRoles.participant.name()); List<RepositoryEntry> courses = businessGroupService.findRepositoryEntries(Collections.singletonList(group), 0, -1); return coachingDao.getEfficencyStatementEntries(students, courses, userPropertyHandlers, locale); } @Override public List<EfficiencyStatementEntry> getCourse(Identity coach, RepositoryEntry entry, List<UserPropertyHandler> userPropertyHandlers, Locale locale) { List<Identity> students = coachingDao.getStudents(coach, entry); return coachingDao.getEfficencyStatementEntries(students, Collections.singletonList(entry), userPropertyHandlers, locale); } @Override public EfficiencyStatementEntry getEfficencyStatement(UserEfficiencyStatement statement, List<UserPropertyHandler> userPropertyHandlers, Locale locale) { return coachingDao.getEfficencyStatementEntry(statement, userPropertyHandlers, locale); } @Override public List<EfficiencyStatementEntry> getEfficencyStatements(Identity student, List<RepositoryEntry> courses, List<UserPropertyHandler> userPropertyHandlers, Locale locale) { List<Identity> students = Collections.singletonList(student); return coachingDao.getEfficencyStatementEntries(students, courses, userPropertyHandlers, locale); } @Override public List<UserEfficiencyStatement> getEfficencyStatements(Identity student) { return coachingDao.getEfficencyStatementEntries(student); } }