Ejemplo n.º 1
0
        private async Task GravarDisciplinasRegencia(bool alteracao, long compensacaoId, IEnumerable <string> disciplinasRegenciaIds)
        {
            if (disciplinasRegenciaIds == null)
            {
                return;
            }

            var listaPersistencia = new List <CompensacaoAusenciaDisciplinaRegencia>();
            IEnumerable <CompensacaoAusenciaDisciplinaRegencia> disciplinas = new List <CompensacaoAusenciaDisciplinaRegencia>();

            if (alteracao)
            {
                disciplinas = await repositorioCompensacaoAusenciaDisciplinaRegencia.ObterPorCompensacao(compensacaoId);
            }

            // Remove as disciplinas não existentes mais
            foreach (var disciplinaExcluida in disciplinas.Where(x => !disciplinasRegenciaIds.Any(d => d == x.DisciplinaId)))
            {
                disciplinaExcluida.Excluir();
                listaPersistencia.Add(disciplinaExcluida);
            }

            // Inclui as disciplinas novas
            foreach (var disciplinaId in disciplinasRegenciaIds)
            {
                listaPersistencia.Add(new CompensacaoAusenciaDisciplinaRegencia()
                {
                    CompensacaoAusenciaId = compensacaoId,
                    DisciplinaId          = disciplinaId,
                    Excluido = false
                });
            }

            listaPersistencia.ForEach(disciplina => repositorioCompensacaoAusenciaDisciplinaRegencia.Salvar(disciplina));
        }
Ejemplo n.º 2
0
 public async Task <IEnumerable <CompensacaoAusenciaDisciplinaRegencia> > ObterPorCompensacao(long compensacaoId)
 => await repositorioCompensacaoAusenciaDisciplinaRegencia.ObterPorCompensacao(compensacaoId);