public void FecharPeriodo(PeriodoDiario periodoDiario) { bool isDetached = _dbContext.Entry(periodoDiario).State == EntityState.Detached; if (isDetached) { _dbContext.PeriodoDiario.Attach(periodoDiario); } _dbContext.PeriodoDiario.Update(periodoDiario); }
public void AbrirPeriodo(PeriodoDiario periodoDiario) { _dbContext.PeriodoDiario.Add(periodoDiario); }
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); } } } }