public async Task Nao_Deve_Excluir_Atribuicao_Excluida()
        {
            //ARRANGE
            var atribuicaoEsporadica = new AtribuicaoEsporadica()
            {
                Id = 1, Excluido = true
            };

            repositorioAtribuicaoEsporadica.Setup(a => a.ObterPorId(atribuicaoEsporadica.Id)).Returns(atribuicaoEsporadica);

            //ACT & ASSERT
            await Assert.ThrowsAsync <NegocioException>(() => comandosAtribuicaoEsporadica.Excluir(1));
        }
Пример #2
0
        public void Nao_Deve_Consultar_Atribuicao_Nao_Existe()
        {
            //ARRANGE
            var atribuicaoEsporadica = new AtribuicaoEsporadica()
            {
                Id = 1, Excluido = false
            };

            repositorioAtribuicaoEsporadica.Setup(a => a.ObterPorId(atribuicaoEsporadica.Id)).Returns(atribuicaoEsporadica);

            //ASSERT && //ACT
            Assert.Null(consultasAtribuicaoEsporadica.ObterPorId(2));
            repositorioAtribuicaoEsporadica.Verify(c => c.ObterPorId(2), Times.Once);
        }
        public async void Deve_Excluir_Atribuicao()
        {
            //ARRANGE
            var atribuicaoEsporadica = new AtribuicaoEsporadica()
            {
                Id = 1, Excluido = false
            };

            repositorioAtribuicaoEsporadica.Setup(a => a.ObterPorId(atribuicaoEsporadica.Id)).Returns(atribuicaoEsporadica);

            //ACT
            await comandosAtribuicaoEsporadica.Excluir(1);

            //ASSERT
            repositorioAtribuicaoEsporadica.Verify(c => c.SalvarAsync(atribuicaoEsporadica), Times.Once);
        }
Пример #4
0
        private AtribuicaoEsporadica ObterObjeto()
        {
            var atribuicao = new AtribuicaoEsporadica
            {
                UeId        = "1",
                ProfessorRf = "1",
                DreId       = "1",
                DataInicio  = DateTime.Now,
                DataFim     = DateTime.Now.AddDays(7) > new DateTime(DateTime.Now.Year, 12, 31) ? new DateTime(DateTime.Now.Year, 12, 31) : DateTime.Now.AddDays(7),
                Id          = 1
            };

            var anoAtual = DateTime.Now.Year;

            if (atribuicao.DataFim.Year > anoAtual)
            {
                atribuicao.DataFim = new DateTime(anoAtual, 12, 31);
            }

            return(atribuicao);
        }
        public async Task Salvar(AtribuicaoEsporadica atribuicaoEsporadica, int anoLetivo, bool ehInfantil)
        {
            var atribuicoesConflitantes = repositorioAtribuicaoEsporadica.ObterAtribuicoesDatasConflitantes(atribuicaoEsporadica.DataInicio, atribuicaoEsporadica.DataFim, atribuicaoEsporadica.ProfessorRf, atribuicaoEsporadica.Id);

            if (atribuicoesConflitantes != null && atribuicoesConflitantes.Any())
            {
                throw new NegocioException("Já existem outras atribuições, para este professor, no periodo especificado");
            }

            var modalidade = ehInfantil ? ModalidadeTipoCalendario.Infantil : ModalidadeTipoCalendario.FundamentalMedio;

            var tipoCalendario = await repositorioTipoCalendario.BuscarPorAnoLetivoEModalidade(anoLetivo, modalidade);

            if (tipoCalendario == null)
            {
                throw new NegocioException("Nenhum tipo de calendario para o ano letivo vigente encontrado");
            }

            var periodosEscolares = await repositorioPeriodoEscolar.ObterPorTipoCalendario(tipoCalendario.Id);

            if (periodosEscolares == null || !periodosEscolares.Any())
            {
                throw new NegocioException("Nenhum periodo escolar encontrado para o ano letivo vigente");
            }

            bool ehPerfilSelecionadoSME = servicoUsuario.UsuarioLogadoPossuiPerfilSme();

            atribuicaoEsporadica.Validar(ehPerfilSelecionadoSME, anoLetivo, periodosEscolares);

            using (var transacao = unitOfWork.IniciarTransacao())
            {
                repositorioAtribuicaoEsporadica.Salvar(atribuicaoEsporadica);

                Guid perfilAtribuicao = ehInfantil ? Perfis.PERFIL_CJ_INFANTIL : Perfis.PERFIL_CJ;

                await AdicionarAtribuicaoEOL(atribuicaoEsporadica.ProfessorRf, perfilAtribuicao);

                unitOfWork.PersistirTransacao();
            }
        }
Пример #6
0
        private AtribuicaoEsporadicaDto EntidadeParaDto(AtribuicaoEsporadica entidade, bool buscarNome = true, string nomeProfessor = "")
        {
            if (buscarNome)
            {
                var professorResumo = servicoEOL.ObterResumoProfessorPorRFAnoLetivo(entidade.ProfessorRf, entidade.DataInicio.Year).Result;
                nomeProfessor = professorResumo != null ? professorResumo.Nome : "Professor não encontrado";
            }

            return(new AtribuicaoEsporadicaDto
            {
                AnoLetivo = entidade.DataInicio.Year,
                DataFim = entidade.DataFim,
                DataInicio = entidade.DataInicio,
                DreId = entidade.DreId,
                Excluido = entidade.Excluido,
                Id = entidade.Id,
                Migrado = entidade.Migrado,
                ProfessorNome = nomeProfessor,
                ProfessorRf = entidade.ProfessorRf,
                UeId = entidade.UeId
            });
        }
Пример #7
0
        private AtribuicaoEsporadicaCompletaDto EntidadeParaDtoCompleto(AtribuicaoEsporadica entidade)
        {
            var professorResumo = servicoEOL.ObterResumoProfessorPorRFAnoLetivo(entidade.ProfessorRf, entidade.DataInicio.Year, true).Result;

            return(new AtribuicaoEsporadicaCompletaDto
            {
                AnoLetivo = entidade.DataInicio.Year,
                DataFim = entidade.DataFim,
                DataInicio = entidade.DataInicio,
                DreId = entidade.DreId,
                Excluido = entidade.Excluido,
                Id = entidade.Id,
                Migrado = entidade.Migrado,
                ProfessorNome = professorResumo != null ? professorResumo.Nome : "Professor não encontrado",
                ProfessorRf = entidade.ProfessorRf,
                UeId = entidade.UeId,
                AlteradoEm = entidade.AlteradoEm,
                AlteradoPor = entidade.AlteradoPor,
                AlteradoRF = entidade.AlteradoRF,
                CriadoEm = entidade.CriadoEm,
                CriadoPor = entidade.CriadoPor,
                CriadoRF = entidade.CriadoRF
            });
        }