Пример #1
0
        public async Task <IEnumerable <PlanoAnualTerritorioSaberCompletoDto> > ObterPorUETurmaAnoETerritorioExperiencia(string ueId, string turmaId, int anoLetivo, long territorioExperienciaId)
        {
            var periodos = await ObterPeriodoEscolar(turmaId, anoLetivo);

            var dataAtual       = DateTime.Now.Date;
            var listaPlanoAnual = await repositorioPlanoAnualTerritorioSaber.ObterPlanoAnualTerritorioSaberCompletoPorAnoUEETurma(anoLetivo, ueId, turmaId, territorioExperienciaId);

            if (listaPlanoAnual != null && listaPlanoAnual.Any())
            {
                if (listaPlanoAnual.Count() != periodos.Count())
                {
                    var periodosFaltantes = periodos.Where(c => !listaPlanoAnual.Any(p => p.Bimestre == c.Bimestre));
                    var planosFaltantes   = ObterNovoPlanoAnualTerritorioSaberCompleto(turmaId, anoLetivo, ueId, periodosFaltantes, dataAtual).ToList();
                    planosFaltantes.AddRange(listaPlanoAnual);
                    listaPlanoAnual = planosFaltantes;
                }
            }
            else
            {
                listaPlanoAnual = ObterNovoPlanoAnualTerritorioSaberCompleto(turmaId, anoLetivo, ueId, periodos, dataAtual);
            }
            return(listaPlanoAnual.OrderBy(c => c.Bimestre));
        }