Subversion Repositories bacoAlunos

Rev

Rev 1701 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courses;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.DomainObject;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.services.common.impl.DefaultResult;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import java.util.ArrayList;
import java.util.List;

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

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

public class CoursesCommonServices extends SingleSearchResults implements IService, IModuleCommonServices
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CoursesCommonServices.class);


    public int countSearch(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, UserSession userSession)
    {
        return 0;
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        return search(null, search, searchType, page, maxResults, userSession);
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String from, 1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        DefaultSearchResults searchResults = new DefaultSearchResults();
        searchResults.setModule(ModuleEnum.Courses);

        searchResults.setTotalResults(DaoFactory.getCourseDaoImpl().countCoursesActualYear(search, searchType));
        if (searchResults.getTotalResults() > 0)
        {
            List<Course> courses = DaoFactory.getCourseDaoImpl().searchActualYear(search, searchType, maxResults, page);
            if (courses == null)
                return searchResults;
            for (Course course : courses)
            {
                DefaultResult defaultResult = new DefaultResult();
                defaultResult.setTitle(course.getName());
                defaultResult.setText(course.getDescription());
                if (from == null)
                    defaultResult.setUrl("/startLoadCourseSeparators.do?courseView.id=" + course.getId());
                else
                    defaultResult.setUrl("/user/startLoadCourseFrom" + from + ".do?courseView.id=" + course.getId());
                searchResults.addResult(defaultResult);
            }
        }
        return searchResults;
    }




    public int countToDo(UserSession userSession)
    {
        return 0;
    }

    public IToDoCat getToDo(UserSession userSession)
    {
        return null;
    }

    public List<IToDo> getAllToDos(UserSession userSession)
    {
        List<IToDo> todos = new ArrayList<IToDo>();

        if(userSession.getUser() != null
                && userSession.getUser() instanceof Teacher)

        {
//            Teacher teacher = (Teacher) userSession.getUser();
//            if(teacher.getCoordinatorCourses() != null && teacher.getCoordinatorCourses().size() > 0 || teacher.getDirectorCourses() != null && teacher.getDirectorCourses().size() > 0)
//            {
//                Set<Course> coordinatorCourses = teacher.getCoordinatorCourses();
//                Set<Course> directorCourses = teacher.getDirectorCourses();
//                if(coordinatorCourses == null)
//                    coordinatorCourses = new HashSet<Course>();
//                if(directorCourses == null)
//                    directorCourses = new HashSet<Course>();
//                coordinatorCourses = new HashSet<Course>(coordinatorCourses);
//                directorCourses = new HashSet<Course>(directorCourses);
//                coordinatorCourses.removeAll(directorCourses);
//                directorCourses.addAll(coordinatorCourses);
//                for(Course course: directorCourses)
//                {
//                    int missing = DaoFactory.getCourseUnitDaoImpl().countMissingProgramGivenCourse(course.getId());
//                    if(missing > 0)
//                    {
//                        DefaultToDo defaultToDo = new DefaultToDo(course.getName(),null,null, "course.courseunit.program.objectives.todo",""+missing,"/user/startLoadCoursesProgramsFromHome.do?area=" + course.getArea() +"#" + course.getId());
//                        todos.add(defaultToDo);
//                    }
//                }
//            }
        }
        /*if(userSession.getUser().hasRole(Globals.COURSE_COMMISSION_PROGRAMS_ROLES))
        {
            List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear());
            for(Course course: courses)
            {
                if(userSession.getUser().hasRole(course.getValidationRole()))
                {
                    int missing = DaoFactory.getCourseUnitDaoImpl().countMissingProgramGivenCourse(course.getId());
                    if(missing > 0)
                    {
                        DefaultToDo defaultToDo = new DefaultToDo(course.getName(),null,null, "course.courseunit.program.objectives.todo",""+missing,"/user/startLoadCoursesProgramsFromHome.do?courseId=" + course.getId() + "#" + course.getId());
                        todos.add(defaultToDo);
                    }
                    int missingValidate = DaoFactory.getCourseUnitDaoImpl().countMissingProgramValidateCourse(course.getId());
                    if(missingValidate > 0)
                    {
                        DefaultToDo defaultToDo = new DefaultToDo(course.getName(),null,null, "course.courseunit.program.validate.todo",""+missingValidate,"/user/startLoadCoursesProgramsFromHome.do?courseId=" + course.getId() + "#" + course.getId());
                        todos.add(defaultToDo);
                    }
                }
            }
        }*/

        /*
        if(userSession.getUser().hasRole(Globals.SERVICES_PROGRAMS_ROLE))
        {
            List<Course> courses = DaoFactory.getCourseDaoImpl().findAll(DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear());
            for(Course course: courses)
            {
                int missing = DaoFactory.getCourseUnitDaoImpl().countMissingProgramGivenCourse(course.getId());
                if(missing > 0)
                {
                    DefaultToDo defaultToDo = new DefaultToDo(course.getName(),null,null, "course.courseunit.program.objectives.todo",""+missing,"/user/startLoadCoursesProgramsFromHome.do?courseId=" + course.getId() + "#" + course.getId());
                    todos.add(defaultToDo);
                }
            }
        }*/
/*This method is invoked from object creation*/
        return todos;
    }

    public void adviseNew(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public void adviseUpdate(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }
}