Esempio n. 1
0
        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);