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 questoes 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 nao corrigidas de uma questao
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
;
}
}