예제 #1
0
        public CicloViewModel Adicionar(NovoCicloViewModel novoCiclo)
        {
            var empresa = _unitOfWork.EmpresaRepository.BuscarPeloId(novoCiclo.EmpresaId);

            if (empresa == null)
            {
                throw new NotFoundException("Empresa não encontrada.");
            }

            var cicloExistente = (_repositoryBase as ICicloRepository)
                                 .BuscarPeloPeriodo(empresa.Id, novoCiclo.Ano, novoCiclo.Semestre);

            if (cicloExistente != null)
            {
                throw new DuplicatedException("Já há um ciclo cadastrado para esse semestre.");
            }

            var ciclo = new Ciclo(
                novoCiclo.Ano,
                novoCiclo.Semestre,
                novoCiclo.Descricao,
                _mapper.Map <Periodo>(novoCiclo.PeriodoVotacaoAssociadoFantastico),
                _mapper.Map <Periodo>(novoCiclo.PeriodoVotacaoAssociadoSuperFantastico),
                empresa,
                new Dimensionamento(_dimensionamentoPadraoAssociadoFantastico.Intervalo, _dimensionamentoPadraoAssociadoFantastico.Acrescimo),
                new Dimensionamento(_dimensionamentoPadraoAssociadoSuperFantastico.Intervalo, _dimensionamentoPadraoAssociadoSuperFantastico.Acrescimo));

            var cicloAnterior = (_repositoryBase as ICicloRepository)
                                .BuscarCicloAnterior(empresa.Id, novoCiclo.Ano, novoCiclo.Semestre);

            if (cicloAnterior != null)
            {
                foreach (var grupo in cicloAnterior.Grupos)
                {
                    ciclo.AdicionarGrupo(grupo);
                }
            }

            return(base.Adicionar(ciclo));
        }
예제 #2
0
 public CicloViewModel PostNovoCiclo(NovoCicloViewModel novoCiclo)
 {
     novoCiclo.EmpresaId = EmpresaId;
     return((_appService as ICicloAppService).Adicionar(novoCiclo));
 }