Example #1
0
        private async Task <IEnumerable <AulaCompletaDto> > ObterAulasDia(FiltroEventosAulasCalendarioDiaDto filtro, DateTime data, Guid perfil, string professorRf, IEnumerable <DisciplinaResposta> disciplinas)
        {
            var aulas = await repositorioAula.ObterAulasCompleto(filtro.TipoCalendarioId, filtro.TurmaId, filtro.UeId, data, perfil, filtro.TurmaHistorico);

            if (disciplinas != null)
            {
                VerificarAulasSomenteConsulta(disciplinas, aulas);
            }

            if (string.IsNullOrWhiteSpace(professorRf))
            {
                return(aulas);
            }

            var aulasProfessor = aulas.Where(x => !string.IsNullOrEmpty(x.ProfessorRF) && x.ProfessorRF.Equals(professorRf)).ToList();

            var disciplinasCompartilhadas = aulasProfessor.Where(x => !string.IsNullOrEmpty(x.DisciplinaCompartilhadaId)).Select(x => x.DisciplinaCompartilhadaId);

            if (disciplinasCompartilhadas.Any())
            {
                ObterAulasCompartilhadas(aulas, aulasProfessor, disciplinasCompartilhadas);
            }

            ObterAulasCompartilhadasRelacionadas(aulas, aulasProfessor);

            return(aulasProfessor);
        }