Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courseunits;

import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class UsersUnitsService implements IService
{

    LoadCourseUnitService loadCourseUnitService = new LoadCourseUnitService();

    public CourseUnitView addTeacher(long teacherId,long courseUnitId, UserSession userSession) throws ServiceException
    {
        CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
        TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId);
        if(t != null)
        {
            if(courseUnit.getTeachers() != null)
                courseUnit.getTeachers().remove(t);
            courseUnit.getTeachers().add(t);
            t.addUnitLocaly(courseUnit);
            return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
        }
        else
        {
            CourseUnitView cV = loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
            cV.setNotFound(true);
            return cV;
        }
    }

    public CourseUnitView removeTeacher(long teacherId,long courseUnitId, UserSession userSession) throws ServiceException
    {
        CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
        TeacherImpl t = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(teacherId);
        t.removeUnitLocaly(courseUnit);
        courseUnit.getTeachers().remove(t);
        return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
    }

    public CourseUnitView addStudent(int code, long courseUnitId, UserSession userSession) throws ServiceException
    {
        CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
        StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code);
        if(s != null)
        {
            if(courseUnit.getStudents() != null)
                courseUnit.getStudents().remove(s);
            courseUnit.getStudents().add(s);
            s.addUnitLocaly(courseUnit);
            return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
        }
        else
        {
            CourseUnitView cV = loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
            cV.setNotFound(true);
            return cV;
        }
    }

    public CourseUnitView removeStudent(int code,long courseUnitId, UserSession userSession) throws ServiceException
    {
        CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().get(courseUnitId);
        StudentImpl s = (StudentImpl) DaoFactory.getStudentDaoImpl().loadBySigesCode(code);
        courseUnit.getStudents().remove(s);
        s.removeUnitLocaly(courseUnit);
        return loadCourseUnitService.run(courseUnitId,true,true,false,userSession);
    }
}