예제 #1
0
        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;
        }
예제 #2
0
        }                        // 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;
        }
예제 #3
0
 public VotacaoAssociadoSuperFantastico(
     Periodo periodoPrevisto,
     Ciclo ciclo,
     Dimensionamento dimensionamento) : base(periodoPrevisto, ciclo, dimensionamento)
 {
 }
예제 #4
0
 public VotacaoAssociadoSuperFantastico(
     Periodo periodoPrevisto,
     Ciclo ciclo) : base(periodoPrevisto, ciclo, new Dimensionamento(0, 2))
 {
 }
예제 #5
0
        }                  // 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);
        }
예제 #6
0
 public virtual void FinalizarVotacao()
 {
     ValidarPeriodoRealizadoParaVotacao();
     ApurarVotos();
     PeriodoRealizado = new Periodo(PeriodoRealizado.DataInicio, DateTime.Now);
 }