public async Task Deve_Buscar_Evento_E_Aulas_Do_Ano_Todo_Por_Tipo_Calendario_Dre_Ue() { List <DateTime> diasLetivos = new List <DateTime>(); List <DateTime> diasNaoLetivos = new List <DateTime>(); FiltroEventosAulasCalendarioDto filtro = new FiltroEventosAulasCalendarioDto { DreId = "1", UeId = "2", TurmaId = "1", TipoCalendarioId = 1 }; 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(); 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)); NovaAula(aula, new DateTime(2019, 11, 1)); NovaAula(aula2, new DateTime(2019, 12, 1)); NovoEvento(evento, "Teste 1", new DateTime(2019, 11, 21), new DateTime(2019, 12, 1)); NovoEvento(evento2, "Teste 2", new DateTime(2019, 12, 1), new DateTime(2019, 12, 1)); 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 }; repositorioPeriodoEscolar.Setup(r => r.ObterPorTipoCalendario(It.IsAny <long>())).Returns(periodos); repositorioAula.Setup(r => r.ObterAulas(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(aulas)); repositorioEvento.Setup(r => r.ObterEventosPorTipoDeCalendarioDreUe(It.IsAny <long>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>())).Returns(eventos); var dias = comandosDiasLetivos.BuscarDiasLetivos(1); var diasEventosNaoLetivos = comandosDiasLetivos.ObterDias(eventos, diasNaoLetivos, Dominio.EventoLetivo.Nao); var diasEventosLetivos = comandosDiasLetivos.ObterDias(eventos, diasLetivos, Dominio.EventoLetivo.Sim); comandosDiasLetivosMock.Setup(r => r.BuscarDiasLetivos(It.IsAny <long>())).Returns(dias); comandosDiasLetivosMock.Setup(r => r.ObterDias(It.IsAny <IEnumerable <Evento> >(), It.IsAny <List <DateTime> >(), EventoLetivo.Nao)).Returns(diasEventosNaoLetivos); comandosDiasLetivosMock.Setup(r => r.ObterDias(It.IsAny <IEnumerable <Evento> >(), It.IsAny <List <DateTime> >(), EventoLetivo.Sim)).Returns(diasEventosLetivos); var eventosAulas = await consultasEventosAulasCalendario.ObterEventosAulasMensais(filtro); Assert.True(eventosAulas.ToList().Where(x => x.Mes == 11).Select(s => s.EventosAulas).FirstOrDefault() == 8); }
public async Task <IEnumerable <EventosAulasCalendarioDto> > ObterEventosAulasMensais(FiltroEventosAulasCalendarioDto filtro) { List <DateTime> diasLetivos = new List <DateTime>(); List <DateTime> diasNaoLetivos = new List <DateTime>(); List <DateTime> totalDias = new List <DateTime>(); 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 diasPeriodoEscolares = comandosDiasLetivos.BuscarDiasLetivos(filtro.TipoCalendarioId); var diasAulas = await repositorioAula.ObterAulas(filtro.TipoCalendarioId, filtro.TurmaId, filtro.UeId, rf); var eventos = repositorioEvento.ObterEventosPorTipoDeCalendarioDreUe(filtro.TipoCalendarioId, filtro.DreId, filtro.UeId, filtro.EhEventoSme); var diasEventosNaoLetivos = comandosDiasLetivos.ObterDias(eventos, diasNaoLetivos, EventoLetivo.Nao); var diasEventosLetivos = comandosDiasLetivos.ObterDias(eventos, diasLetivos, EventoLetivo.Sim); var aulas = ObterDias(diasAulas); diasEventosNaoLetivos.RemoveAll(x => !diasPeriodoEscolares.Contains(x)); aulas.RemoveAll(x => !diasPeriodoEscolares.Contains(x)); totalDias.AddRange(aulas); totalDias.AddRange(diasEventosLetivos); totalDias.AddRange(diasEventosNaoLetivos); return(MapearParaDto(totalDias)); }