public void AtualizarPeriodoPrevisto(Periodo periodo) { if (!periodo.DataInicio.HasValue || !periodo.DataFim.HasValue) { throw new CustomException("Para atualizar o período previsto é preciso informar a data de início de fim da votação."); } if (PeriodoRealizado.DataFim.HasValue) { throw new CustomException("Não é possível atualizar a período previsto após o término da votação."); } if (PeriodoRealizado.DataInicio.HasValue && PeriodoPrevisto.DataInicio != periodo.DataInicio) { throw new CustomException("Não é possível atualizar a data prevista para início após o início da votação."); } PeriodoPrevisto = periodo; }
} // EF protected Votacao(Periodo periodoPrevisto, Ciclo ciclo, Dimensionamento dimensionamento) : base() { PeriodoPrevisto = periodoPrevisto ?? throw new CustomException("O período previsto para a realização da votação precisa ser informado"); if (!periodoPrevisto.DataInicio.HasValue) { throw new CustomException("A data de ínicio da votação deve ser informada."); } if (!periodoPrevisto.DataFim.HasValue) { throw new CustomException("A data de término da votação deve ser informada."); } PeriodoRealizado = new Periodo(null, null); Dimensionamento = dimensionamento ?? throw new CustomException("O dimensionamento da eleição precisa ser informado."); Ciclo = ciclo ?? throw new CustomException("O ciclo da votação precisa ser informado."); CicloId = ciclo.Id; }
public VotacaoAssociadoSuperFantastico( Periodo periodoPrevisto, Ciclo ciclo, Dimensionamento dimensionamento) : base(periodoPrevisto, ciclo, dimensionamento) { }
public VotacaoAssociadoSuperFantastico( Periodo periodoPrevisto, Ciclo ciclo) : base(periodoPrevisto, ciclo, new Dimensionamento(0, 2)) { }
} // EF public Ciclo( int ano, int semestre, string descricao, Periodo periodoVotacaoAssociadoFantastico, Periodo periodoVotacaoAssociadoSuperFantastico, Empresa empresa, Dimensionamento dimensionamentoAssociadoFantastico = null, Dimensionamento dimensionamentoSuperAssociadoFantastico = null) : base() { if (ano < 2010) { throw new CustomException("O ano deve ser maior que 2010."); } if (semestre != 1 && semestre != 2) { throw new CustomException("O semestre deve ser 1 ou 2."); } Ano = ano; Semestre = semestre; Descricao = descricao; Empresa = empresa ?? throw new CustomException("A empresa precisa ser informada para a criação de um novo ciclo."); EmpresaId = empresa.Id; DataInicio = DateTime.Now; if (periodoVotacaoAssociadoFantastico == null) { throw new CustomException("O período previsto para a votação dos associados fantásticos deve ser informado."); } if (periodoVotacaoAssociadoSuperFantastico == null) { throw new CustomException("O período previsto para a votação dos associados super fantásticos deve ser informado."); } VotacaoAssociadoFantastico votacaoAssociadoFantastico; if (dimensionamentoAssociadoFantastico == null) { votacaoAssociadoFantastico = new VotacaoAssociadoFantastico(periodoVotacaoAssociadoFantastico, this); } else { votacaoAssociadoFantastico = new VotacaoAssociadoFantastico(periodoVotacaoAssociadoFantastico, this, dimensionamentoAssociadoFantastico); } VotacaoAssociadoSuperFantastico votacaoAssociadoSuperFantastico; if (dimensionamentoSuperAssociadoFantastico == null) { votacaoAssociadoSuperFantastico = new VotacaoAssociadoSuperFantastico(periodoVotacaoAssociadoSuperFantastico, this); } else { votacaoAssociadoSuperFantastico = new VotacaoAssociadoSuperFantastico(periodoVotacaoAssociadoSuperFantastico, this, dimensionamentoSuperAssociadoFantastico); } if (periodoVotacaoAssociadoFantastico.DataFim >= periodoVotacaoAssociadoSuperFantastico.DataInicio) { throw new CustomException("A data de início da votação do associado fantástico deve ser posterior à data de início da votação do associado super fantástico."); } _votacoes.Add(votacaoAssociadoFantastico); _votacoes.Add(votacaoAssociadoSuperFantastico); }
public virtual void FinalizarVotacao() { ValidarPeriodoRealizadoParaVotacao(); ApurarVotos(); PeriodoRealizado = new Periodo(PeriodoRealizado.DataInicio, DateTime.Now); }