private List <ResolucaoQuestao> ObterResolucaoQuestao(Interface.Resolucao arg)
        {
            var resolucoes      = new Resolucoes(NhibernateSetup.GetSession());
            var listaResolucoes = resolucoes.ResolucaoQuestaoPorTarefaEAluno(arg.IdTarefa, arg.Questoes.First().IdAluno).ToList();

            if (listaResolucoes.Any())
            {
                foreach (var resolucaoQuestao in listaResolucoes)
                {
                    resolucaoQuestao.Comentario = arg.Questoes.First(q => q.Id == resolucaoQuestao.Questao.Id).Comentario;
                    resolucaoQuestao.Resposta   = arg.Questoes.First(q => q.Id == resolucaoQuestao.Questao.Id).Resposta;
                }
            }

            var tarefas  = new Tarefas(NhibernateSetup.GetSession());
            var alunos   = new Alunos(NhibernateSetup.GetSession());
            var questoes = new Questoes(NhibernateSetup.GetSession());

            var tarefa = tarefas.Por(arg.IdTarefa);
            var aluno  = alunos.Por(arg.Questoes.First().IdAluno);

            var novasQuestoes = new List <Interface.Questao>();

            foreach (var questao in arg.Questoes.Where(q => q.Resposta != null))
            {
                if (listaResolucoes.All(l => l.Questao.Id != questao.Id))
                {
                    novasQuestoes.Add(questao);
                }
            }

            foreach (var questao in novasQuestoes)
            {
                var resolucaoQuestao = new ResolucaoQuestao();
                resolucaoQuestao.Tarefa     = tarefa;
                resolucaoQuestao.Aluno      = aluno;
                resolucaoQuestao.Resposta   = questao.Resposta;
                resolucaoQuestao.Comentario = questao.Comentario;

                resolucaoQuestao.Questao = questoes.Por(questao.Id);

                listaResolucoes.Add(resolucaoQuestao);
            }

            return(listaResolucoes);
        }
Пример #2
0
        private Tarefa ObterTarefa(Interface.Tarefa tarefaInterface)
        {
            var questoes    = new Questoes(NhibernateSetup.GetSession());
            var professores = new Professores(NhibernateSetup.GetSession());

            var listaQuestoes = new List <Questao>();

            foreach (var questao in tarefaInterface.Questoes)
            {
                listaQuestoes.Add(questoes.Por(questao.Id));
            }

            var professor = professores.Por(tarefaInterface.IdProfessor);

            var tarefa = new Tarefa {
                Questoes  = listaQuestoes,
                Professor = professor
            };

            return(tarefa);
        }