public async Task <IActionResult> Index() { var result = await _publicacaoRepository.ListarPublicacoesDoAlunoAsync(IntegrationUserId); var avaliacoes = Mapper.Map <List <ProvaPublicadaViewModel> >(result.ToList()); return(View(avaliacoes)); }
public async Task <List <AvaliacaoPublicadaQueryResult> > ListarAvaliacoesPublicadasAsync(string login) { var aluno = _alunoRepository.ObterPorLogin(login); if (aluno == null) { throw new DomainException("O aluno não foi localizado!"); } var publicacoes = await _publicacaoRepository.ListarPublicacoesDoAlunoAsync(login); var retorno = new List <AvaliacaoPublicadaQueryResult>(); publicacoes.ForEach(x => { var prova = x.Avaliacao.Provas.FirstOrDefault(a => a.AlunoId == aluno.Id); decimal nota = 0; int q = 0; if (prova != null) { foreach (var questao in prova.QuestoesProva) { nota = nota + questao.Nota; q++; } } if (q == 0) { q = 1; } retorno.Add(new AvaliacaoPublicadaQueryResult() { AlunoId = aluno.Id, AvaliacaoId = x.AvaliacaoId, DataFim = x.DataFim, DataInicio = x.DataInicio, DataPublicacao = x.DataPublicacao, Descricao = x.Avaliacao.Descricao, Disciplina = x.Avaliacao.Disciplina, Materia = x.Avaliacao.Materia, ValorProva = x.ValorProva, PublicacaoId = x.Id, ProvaId = prova == null ? (int?)null : prova.Id, DataRealizacao = prova == null ? (DateTime?)null : prova.DataProva, NotaObtida = x.ValorProva / q * nota//null //TODO - Calcular a nota obtida e retornar nesse atributo. }); }); return(retorno); }