Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.services.assessments;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.AssessmentQuestionAnswerView;
import pt.estgp.estgweb.domain.views.AssessmentQuestionView;
import pt.estgp.estgweb.domain.views.AssessmentResponseView;
import pt.utl.ist.berserk.logic.serviceManager.IService;

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

/**
 * Created by IntelliJ IDEA.
 * User: Filipe Matos
 * Date: 5/Ago/2013
 * Time: 15:55:51
 * To change this template use File | Settings | File Templates.
 */

public class LoadAssessmentResponsesService implements IService {

    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(LoadAssessmentResponsesService.class);

    public List<AssessmentResponseView> loadAssessmentResponses(long idAssessment, UserSession userSession)
    {
        List<AssessmentResponse> responses = DaoFactory.getAssessmentResponseDaoImpl().loadResponsesByAssessmentIdAnswered(idAssessment);

        List<AssessmentResponseView> responsesViews = new ArrayList<AssessmentResponseView>();
        if(responses != null)
        {
            for(AssessmentResponse aR : responses)
            {
                AssessmentResponseView rView = new AssessmentResponseView(aR);
                responsesViews.add(rView);
            }
        }
       
        return responsesViews;
    }


    public List<AssessmentQuestionView> loadQuestionsResponses(long idAssessment, UserSession userSession)
    {
        List<AssessmentQuestionAnswerImpl> answers = DaoFactory.getAssessmentQuestionAnswerDaoImpl().loadByAssessmentIdNotEvaluated(idAssessment);

        List<AssessmentQuestion> questions = new ArrayList<AssessmentQuestion>();
        for(AssessmentQuestionAnswerImpl aQA : answers)
        {       //adicionar as questões sem ser repetidas e so as que o docente tem de corrigir
            if(!questions.contains(aQA.getPossibleAnswer().getQuestionItem().getQuestion()))
            {
                if(!aQA.getPossibleAnswer().getQuestionItem().getQuestion().getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_RADIO)
                        && !aQA.getPossibleAnswer().getQuestionItem().getQuestion().getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_CHECK)
                        && !aQA.getPossibleAnswer().getQuestionItem().getQuestion().getType().equals(Globals.ASSESSMENT_QUESTION_TYPE_MATRIX))
                questions.add(aQA.getPossibleAnswer().getQuestionItem().getQuestion());
            }
        }

        List<AssessmentQuestionView> questionsView = new ArrayList<AssessmentQuestionView>();
        for(AssessmentQuestion a : questions)
        {
            AssessmentQuestionView qview = new AssessmentQuestionView(a);
            qview.setNumberOfResponses(DaoFactory.getAssessmentQuestionAnswerDaoImpl().countResponses(qview.getId()));
            questionsView.add(qview);
        }

        return questionsView;
    }

    ///carregar todas as respostas não corrigidas de uma questão
    public List<AssessmentQuestionAnswerView> loadQuestionResponses(long questionId, UserSession userSession)
    {
        List<AssessmentQuestionAnswerImpl> answers = DaoFactory.getAssessmentQuestionAnswerDaoImpl().loadByQuestionIdNotEvaluated(questionId);

        List<AssessmentQuestionAnswerView> answersView = new ArrayList<AssessmentQuestionAnswerView>();
        for(AssessmentQuestionAnswer a : answers)
        {
            AssessmentQuestionAnswerView aView = new AssessmentQuestionAnswerView(a,new AssessmentResponseView(a.getResponse()));
            answersView.add(aView);
        }

        return answersView;
    }


    public List<AssessmentResponseView> loadOwnedResponses(UserSession userSession)
    {
        List<AssessmentResponse> responses = DaoFactory.getAssessmentResponseDaoImpl().loadOwnedResponses(userSession.getUser().getId());
        List<AssessmentResponseView> responseViews = new ArrayList<AssessmentResponseView>();

        for(AssessmentResponse r : responses)
        {
            AssessmentResponseView responseView = new AssessmentResponseView(r);
            responseViews.add(responseView);
        }

        return responseViews;
    }
}