Beispiel #1
0
        public async Task <IEnumerable <ProvaQueryResult> > ObterProvasComRelacoes(string login)
        {
            var aluno = await _alunoRepository.ObterPorLogin(login);

            if (aluno == null)
            {
                throw new Exception("O aluno não foi localizado!");
            }

            IEnumerable <Publicacao> provas = await _publicacaoRepository.ObterProvasComRelacoesAsync(aluno.Id, aluno.IdTurma);

            List <ProvaQueryResult> provaList = new List <ProvaQueryResult>();

            foreach (Publicacao pub in provas)
            {
                if (pub.Provas.Count > 0)
                {
                    var retorno = new ProvaQueryResult
                    {
                        Avaliacao  = pub.Avaliacao,
                        Publicacao = pub,
                        NotaObtida = pub.Valor.Value / pub.Provas.First().Questoes.Count *pub.Provas.First().Questoes.Sum(x => x.Nota),
                        Criado_Em  = pub.Provas.First().CriadoEm
                    };
                    provaList.Add(retorno);
                }
                else
                {
                    var retorno = new ProvaQueryResult
                    {
                        Avaliacao  = pub.Avaliacao,
                        Publicacao = pub,
                        NotaObtida = 0,
                        Criado_Em  = null
                    };
                    provaList.Add(retorno);
                }
            }

            return(provaList);
        }