public async Task <IActionResult> ObterTipoEventosAulas(FiltroEventosAulasCalendarioMesDto filtro)
        {
            var retorno = await consultasEventosAulasCalendario.ObterTipoEventosAulas(filtro);

            if (!retorno.Any())
            {
                return(StatusCode(204));
            }

            return(Ok(retorno));
        }
예제 #2
0
        public async Task Deve_Buscar_Tipos_De_Evento_E_Aulas_Do_Mes_Por_Tipo_Calendario_Dre_Ue()
        {
            FiltroEventosAulasCalendarioMesDto filtro = new FiltroEventosAulasCalendarioMesDto
            {
                DreId            = "1",
                UeId             = "2",
                TurmaId          = "1",
                TipoCalendarioId = 1,
                Mes = 11
            };

            PeriodoEscolar periodoEscolar  = new PeriodoEscolar();
            PeriodoEscolar periodoEscolar2 = new PeriodoEscolar();
            PeriodoEscolar periodoEscolar3 = new PeriodoEscolar();
            PeriodoEscolar periodoEscolar4 = new PeriodoEscolar();
            AulaDto        aula            = new AulaDto();
            AulaDto        aula2           = new AulaDto();
            Evento         evento          = new Evento();
            Evento         evento2         = new Evento();

            NovaAula(aula, new DateTime(2019, 11, 1));
            NovaAula(aula2, new DateTime(2019, 11, 2));
            NovoEvento(evento, "Teste 1", new DateTime(2019, 11, 21), new DateTime(2019, 12, 1));
            NovoEvento(evento2, "Teste 2", new DateTime(2019, 11, 1), new DateTime(2019, 11, 1));

            NovoPerioEscolar(periodoEscolar, 1, new DateTime(2019, 02, 01), new DateTime(2019, 03, 30));
            NovoPerioEscolar(periodoEscolar2, 2, new DateTime(2019, 04, 01), new DateTime(2019, 06, 30));
            NovoPerioEscolar(periodoEscolar3, 3, new DateTime(2019, 07, 01), new DateTime(2019, 09, 30));
            NovoPerioEscolar(periodoEscolar4, 4, new DateTime(2019, 10, 01), new DateTime(2019, 11, 30));

            IEnumerable <PeriodoEscolar> periodos = new List <PeriodoEscolar> {
                periodoEscolar, periodoEscolar2, periodoEscolar3, periodoEscolar4
            };
            IEnumerable <AulaDto> aulas = new List <AulaDto> {
                aula, aula2
            };
            IEnumerable <Evento> eventos = new List <Evento> {
                evento, evento2
            };

            repositorioAula.Setup(r => r.ObterAulas(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), null, null, null)).Returns(Task.FromResult(aulas));
            repositorioEvento.Setup(r => r.ObterEventosPorTipoDeCalendarioDreUeMes(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>())).Returns(Task.FromResult(eventos));
            repositorioPeriodoEscolar.Setup(r => r.ObterPorTipoCalendario(It.IsAny <long>())).Returns(periodos);

            var dias = comandosDiasLetivos.BuscarDiasLetivos(1);

            comandosDiasLetivosMock.Setup(r => r.BuscarDiasLetivos(It.IsAny <long>())).Returns(dias);

            var eventosAulas = await consultasEventosAulasCalendario.ObterTipoEventosAulas(filtro);

            Assert.True(eventosAulas.Count() == 11);
        }
예제 #3
0
        public async Task <IEnumerable <EventosAulasTipoCalendarioDto> > ObterTipoEventosAulas(FiltroEventosAulasCalendarioMesDto filtro)
        {
            if (!filtro.TodasTurmas && string.IsNullOrWhiteSpace(filtro.TurmaId))
            {
                throw new NegocioException("É necessario informar uma turma para pesquisa");
            }

            var usuario = await servicoUsuario.ObterUsuarioLogado();

            string rf = usuario.TemPerfilGestaoUes() ? string.Empty : usuario.CodigoRf;

            var eventosAulas = new List <EventosAulasTipoCalendarioDto>();

            var periodoEscolar = repositorioPeriodoEscolar.ObterPorTipoCalendario(filtro.TipoCalendarioId);

            if (periodoEscolar is null || !periodoEscolar.Any())
            {
                throw new NegocioException($"Não existe periodo escolar cadastrado para o tipo de calendario de id {filtro.TipoCalendarioId}");
            }

            var ano = periodoEscolar.FirstOrDefault().PeriodoInicio.Year;

            var aulas = await repositorioAula.ObterAulas(filtro.TipoCalendarioId, filtro.TurmaId, filtro.UeId, rf, filtro.Mes);

            var eventos = await repositorioEvento.ObterEventosPorTipoDeCalendarioDreUeMes(filtro.TipoCalendarioId, filtro.DreId, filtro.UeId, filtro.Mes, filtro.EhEventoSme);

            var atividadesAvaliativas = await repositorioAtividadeAvaliativa.ObterAtividadesPorMes(filtro.DreId, filtro.UeId, filtro.Mes, ano, rf, filtro.TurmaId);

            var diasAulas     = ObterDiasAulas(aulas);
            var diasEventos   = ObterDiasEventos(eventos, filtro.Mes);
            var diasAtividade = ObterDiasAtividades(atividadesAvaliativas);

            diasAulas.AddRange(diasEventos);
            diasAulas.AddRange(diasAtividade);
            return(MapearParaDtoTipo(eventosAulas, diasAulas));
        }