private async Task TratarAbrangencia(AtribuicaoCJ atribuicaoCJ, IEnumerable <AtribuicaoCJ> atribuicoesAtuais) { var abrangenciasAtuais = await repositorioAbrangencia.ObterAbrangenciaSintetica(atribuicaoCJ.ProfessorRf, Perfis.PERFIL_CJ, atribuicaoCJ.TurmaId); if (atribuicaoCJ.Substituir) { if (abrangenciasAtuais != null && !abrangenciasAtuais.Any()) { var turma = repositorioTurma.ObterPorId(atribuicaoCJ.TurmaId); if (turma == null) { throw new NegocioException($"Não foi possível localizar a turma {atribuicaoCJ.TurmaId} da abrangência."); } var abrangencias = new Abrangencia[] { new Abrangencia() { Perfil = Perfis.PERFIL_CJ, TurmaId = turma.Id } }; servicoAbrangencia.SalvarAbrangencias(abrangencias, atribuicaoCJ.ProfessorRf); } } else { if (abrangenciasAtuais != null && abrangenciasAtuais.Any()) { if (!atribuicoesAtuais.Any(a => a.Id != atribuicaoCJ.Id && a.Substituir == true)) { servicoAbrangencia.RemoverAbrangencias(abrangenciasAtuais.Select(a => a.Id).ToArray()); } } } }
private async Task TratarAbrangencia(AtribuicaoCJ atribuicaoCJ, IEnumerable <AtribuicaoCJ> atribuicoesAtuais) { var perfil = atribuicaoCJ.Modalidade == Modalidade.Infantil ? Perfis.PERFIL_CJ_INFANTIL : Perfis.PERFIL_CJ; var abrangenciasAtuais = await repositorioAbrangencia.ObterAbrangenciaSintetica(atribuicaoCJ.ProfessorRf, perfil, atribuicaoCJ.TurmaId); if (atribuicaoCJ.Substituir) { if (abrangenciasAtuais != null && !abrangenciasAtuais.Any()) { var turma = await repositorioTurma.ObterPorCodigo(atribuicaoCJ.TurmaId); if (turma == null) { throw new NegocioException($"Não foi possível localizar a turma {atribuicaoCJ.TurmaId} da abrangência."); } var abrangencias = new Abrangencia[] { new Abrangencia() { Perfil = perfil, TurmaId = turma.Id } }; servicoAbrangencia.SalvarAbrangencias(abrangencias, atribuicaoCJ.ProfessorRf); } } else if ((abrangenciasAtuais != null && abrangenciasAtuais.Any()) && (!atribuicoesAtuais.Any(a => a.Id != atribuicaoCJ.Id && a.Substituir))) { servicoAbrangencia.RemoverAbrangencias(abrangenciasAtuais.Select(a => a.Id).ToArray()); } }