public IHttpActionResult SalvarTarefa(Interface.TarefaTurma tarefaTurma) { var turma = _turmas.Por(tarefaTurma.IdTurma); var tarefa = _tarefas.Por(tarefaTurma.IdTarefa); if (turma.Tarefas == null) { turma.Tarefas = new List <Tarefa>(); } turma.Tarefas.Add(tarefa); tarefa.Turmas.Add(turma); _tarefas.Salvar(tarefa); foreach (var aluno in turma.Alunos) { _resolucoes.SalvarResolucaoTarefa(new ResolucaoTarefa { Aluno = aluno, Tarefa = tarefa, Enviada = false }); } return(Ok()); }
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); }
public IHttpActionResult PorId(int idTarefa, int idAluno) { if (idTarefa <= 0 || idAluno <= 0) { return(BadRequest("É necessário informar o aluno e a tarefa.")); } var tarefaEncontrada = _tarefas.Por(idTarefa); var listaResolucaoQuestao = _resolucoes.ResolucaoQuestaoPorTarefaEAluno(tarefaEncontrada.Id, idAluno); var resolucaoMapeada = _mapper.Map <Interface.Resolucao>(tarefaEncontrada); if (listaResolucaoQuestao.Any()) { foreach (var item in resolucaoMapeada.Questoes) { item.Comentario = listaResolucaoQuestao.FirstOrDefault(l => l.Questao.Id == item.Id)?.Comentario; item.Resposta = listaResolucaoQuestao.FirstOrDefault(l => l.Questao.Id == item.Id)?.Resposta; } } return(Ok(resolucaoMapeada)); }