Example #1
0
        public void FecharPeriodo(PeriodoDiario periodoDiario)
        {
            bool isDetached = _dbContext.Entry(periodoDiario).State == EntityState.Detached;

            if (isDetached)
            {
                _dbContext.PeriodoDiario.Attach(periodoDiario);
            }

            _dbContext.PeriodoDiario.Update(periodoDiario);
        }
Example #2
0
 public void AbrirPeriodo(PeriodoDiario periodoDiario)
 {
     _dbContext.PeriodoDiario.Add(periodoDiario);
 }
Example #3
0
        public async Task AbrirPeriodoDiario(int IDPeriodo)
        {
            var msg     = "";
            var periodo = await _periodoBLL.GetPeriodoAsync(IDPeriodo);


            if (await _periodoBLL.IsPeriodoAbertoAsync(IDPeriodo))
            {
                var periodoDiarioAtual = await this.GetUltimoPeriodoDiarioAsync(IDPeriodo);

                if (periodoDiarioAtual != null)
                {
                    if (await this.IsPeriodoAbertoAsync(periodoDiarioAtual.IDPeriodoDiario)) //teste se periodo diário atual está aberto
                    {
                        // testa se dhInsert é maior que o início e menor que o fim
                        if (this.AgoraIsDentroPeriodoDeVotacao())
                        {
                            //não faz nada, está dentro do período - não precisa abrir nem fechar
                        }
                        else
                        {
                            //se a data de inicio do periodo atual for menor que a data de inserção, aí abre novo período, senão, indica que é o mesmo dia, não pode abrir votação
                            if (periodoDiarioAtual.DHInicio.CompareTo(dhInsert) == -1 && dhInsert.CompareTo(dhInicioDefault) == 1 && dhInsert.CompareTo(dhFimDefault) == -1)
                            {
                                await this.FecharPeriodoDiario(periodoDiarioAtual.IDPeriodo);//fecha o período atual

                                var periodoDiario = new PeriodoDiario(IDPeriodoDiario: 0, IDPeriodo: IDPeriodo, DHInicio: DateTime.Today, DHFim: DateTime.Today, 'S');

                                _periodoDiarioRepository.AbrirPeriodo(periodoDiario);
                                await _periodoDiarioRepository.UnitOfWork.Commit();
                            }
                            else
                            {
                                msg = "Ainda não pode ser aberto um novo período para votação";
                                throw new Exception(msg);
                            }
                        }
                    }
                    else
                    {
                        //se a data de inicio do periodo atual for menor que a data de inserção, aí fecha o período e abre, senão, indica que é o mesmo dia, não pode abrir votação
                        if (periodoDiarioAtual.DHInicio.CompareTo(dhInsert) == -1 && dhInsert.CompareTo(dhInicioDefault) == 1 && dhInsert.CompareTo(dhFimDefault) == -1)
                        {
                            var periodoDiario = new PeriodoDiario(IDPeriodoDiario: 0, IDPeriodo: IDPeriodo, DHInicio: DateTime.Today, DHFim: DateTime.Today, 'S');

                            _periodoDiarioRepository.AbrirPeriodo(periodoDiario);
                            await _periodoDiarioRepository.UnitOfWork.Commit();
                        }
                        else
                        {
                            msg = "Ainda não pode ser aberto um novo período para votação";
                            throw new Exception(msg);
                        }
                    }
                }
                else
                {
                    if (dhInsert.CompareTo(dhInicioDefault) == 1 && dhInsert.CompareTo(dhFimDefault) == -1)
                    {
                        var periodoDiario = new PeriodoDiario(IDPeriodoDiario: 0, IDPeriodo: IDPeriodo, DHInicio: DateTime.Today, DHFim: DateTime.Today, 'S');

                        _periodoDiarioRepository.AbrirPeriodo(periodoDiario);
                        await _periodoDiarioRepository.UnitOfWork.Commit();
                    }
                    else
                    {
                        msg = "Ainda não pode ser aberto um novo período para votação";
                        throw new Exception(msg);
                    }
                }
            }
        }