public async Task <List <DiaLetivoDto> > Handle(ObterDiasPorPeriodosEscolaresComEventosLetivosENaoLetivosQuery request, CancellationToken cancellationToken) { var datasDosPeriodosEscolares = new List <DiaLetivoDto>(); foreach (var periodoEscolar in request.PeriodosEscolares.OrderBy(c => c.Bimestre)) { datasDosPeriodosEscolares.AddRange(periodoEscolar.ObterIntervaloDatas().Select(c => new DiaLetivoDto { Data = c, EhLetivo = !c.FimDeSemana() })); } var eventos = (await repositorioEvento.ObterEventosPorTipoDeCalendarioAsync(request.TipoCalendarioId))?.Where(c => (c.EhEventoUE() || c.EhEventoSME())); if (eventos != null) { datasDosPeriodosEscolares.AddRange(ObtemEventoLetivosFimDeSemana(eventos)); datasDosPeriodosEscolares.AddRange(ObtemEventosNaoLetivos(datasDosPeriodosEscolares, eventos)); } return(datasDosPeriodosEscolares); }
public Task <IEnumerable <Evento> > Handle(ObterEventosPorTipoCalendarioQuery request, CancellationToken cancellationToken) => repositorioEvento.ObterEventosPorTipoDeCalendarioAsync(request.TipoCalendarioId);