コード例 #1
0
        public async Task InsertVotoDiarioAsync(Voto voto)/// idAluno, idTurma,idRestaurante
        {
            var msg        = "";
            var turmaAluno = await _turmaAlunoBLL.GetTurmaAlunoAsync(voto.idAluno, voto.idTurma); //pega idTurmaAluno

            var ultimoPeriodoTurma = await _periodoBLL.GetUltimoPeriodoAsync(voto.idTurma);       // pega idPeriodo

            if (await _periodoBLL.IsPeriodoAbertoAsync(ultimoPeriodoTurma.IDPeriodo))             //valida se período está aberto
            {
                await _periodoDiarioBLL.AbrirPeriodoDiario(ultimoPeriodoTurma.IDPeriodo);

                //idTurmaAluno idPeriodoResultado (id rest + id_periodo) // pegar o periodo resultado
                var periodoResultado = await _periodoResultadoBLL.GetPeriodo(0, voto.idRestaurante, ultimoPeriodoTurma.IDPeriodo);

                if (periodoResultado != null)
                {
                    // pegar ultimo periodo diario e validar se está aberto
                    var periodoDiario = await _periodoDiarioBLL.GetUltimoPeriodoDiarioAsync(periodoResultado.IDPeriodo);

                    if (await _periodoDiarioBLL.IsPeriodoAbertoAsync(periodoDiario.IDPeriodoDiario))
                    {
                        // validar se aluno (idTurmaAluno) já existe na tabela de voto diário
                        if (await this.IsAlunoJaVotouAsync(periodoDiario.IDPeriodoDiario, turmaAluno.IDTurmaAluno))
                        {
                            msg = "Aluno já votou!";
                            throw new Exception(msg);
                        }
                        else
                        {
                            var data       = DateTime.Now;
                            var votoDiario = new VotoDiario(id: 0, periodoResultado.IDPeriodoResultado, turmaAluno.IDTurmaAluno, data, periodoDiario.IDPeriodoDiario);
                            _votoDiarioRepository.InsertVotoDiarioAsync(votoDiario);
                            await _votoDiarioRepository.UnitOfWork.Commit();
                        }
                    }
                    else
                    {
                        msg = "Não existe período aberto para votação";
                        throw new Exception(msg);
                    }
                }
                else
                {
                    msg = "Restaurante informado não pertence a esse período/turma";
                    throw new Exception(msg);
                }
            }
            else
            {
                msg = "Período de votação semanal já encerrado";
                throw new Exception(msg);
            }
        }
コード例 #2
0
 public void InsertVotoDiarioAsync(VotoDiario votoDiario)
 {
     _dbContext.VotoDiario.Add(votoDiario);
 }