public async Task <bool> AddVotoSemanal(int IDTurmaAluno, int IDRestaurante, int IDPeriodo) { var msg = ""; var periodo = _periodoBLL.GetPeriodoAsync(IDPeriodo).Result; // Verificar se existe o periodo passado como parâmetro if (periodo != null) { if (periodo.SNAtivo.Equals('S') && periodo.SNProcessado.Equals('N')) { //Validar se aluno já votou var turmaConfig = _turmaConfiguracaoBLL.GetTurmaConfiguracaoAsync(periodo.IDTurma).Result; var qtdVotos = await _turmaConfiguracaoBLL.GetQtdVotacaoSemanal(periodo.IDTurma); var votosAlunoResult = await _votoSemanalRepository.GetAllVotosPeriodoAlunoAsync(IDPeriodo, IDTurmaAluno); if (votosAlunoResult.Count < qtdVotos || votosAlunoResult == null) { //Validar dia e hora de inicio e termino de votação //Validar restaurante já foi votado pelo aluno no periodo. foreach (var votos in votosAlunoResult) { if (votos.IDRestaurante == IDRestaurante) { msg = "O restaurante já foi votado pelo aluno nesse período e não pode ser votado novamente."; throw new Exception(msg); } } //Validar TurmaAluno var votoSemanal = new VotoSemanal(0, IDRestaurante, IDPeriodo, IDTurmaAluno, DateTime.Now); _votoSemanalRepository.AddVotoSemanal(votoSemanal); await _votoSemanalRepository.UnitOfWork.Commit(); return(true); } msg = "O Aluno já atingiu o limite de votos para o período"; throw new Exception(msg); } msg = "O periodo não esta ativo ou já foi processado."; throw new Exception(msg); } msg = "O período informado não existe."; throw new Exception(msg); }
public void AddVotoSemanal(VotoSemanal votoSemanal) { _dbContext.VotoSemanal.Add(votoSemanal); }