Example #1
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;
        }
Example #2
0
        public IEnumerable <Elegivel> ApurarVotos(Grupo grupo)
        {
            ValidarPeriodoRealizadoParaApuracao();
            var elegiveis = RetornarElegiveisOrdenadosPorPontuacao().Where(e => e.Associado.Grupo.Equals(grupo));

            if (!elegiveis.Any())
            {
                return(new List <Elegivel>());
            }

            var qtda = Dimensionamento.CalcularQuantidade(Ciclo.Associados.Count(a => a.Grupo.Equals(grupo)));

            foreach (var elegivel in elegiveis.Take(qtda))
            {
                elegivel.RegistrarApuracao(Enums.EApuracao.Eleito);
            }

            foreach (var elegivel in elegiveis.Skip(qtda))
            {
                elegivel.RegistrarApuracao(Enums.EApuracao.NaoEleito);
            }

            return(elegiveis);
        }
Example #3
0
 public VotacaoAssociadoSuperFantastico(
     Periodo periodoPrevisto,
     Ciclo ciclo,
     Dimensionamento dimensionamento) : base(periodoPrevisto, ciclo, dimensionamento)
 {
 }
        }                  // 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);
        }