private PlanoCiclo MapearParaDominio(PlanoCicloDto planoCicloDto) { if (planoCicloDto == null) { throw new ArgumentNullException(nameof(planoCicloDto)); } if (planoCicloDto.Id == 0 && repositorioPlanoCiclo.ObterPlanoCicloPorAnoCicloEEscola(planoCicloDto.Ano, planoCicloDto.CicloId, planoCicloDto.EscolaId)) { throw new NegocioException("Já existe um plano ciclo referente a este Ano/Ciclo/Escola."); } var planoCiclo = repositorioPlanoCiclo.ObterPorId(planoCicloDto.Id); if (planoCiclo == null) { planoCiclo = new PlanoCiclo(); } if (!planoCiclo.Migrado) { if (planoCicloDto.IdsMatrizesSaber == null || !planoCicloDto.IdsMatrizesSaber.Any()) { throw new NegocioException("A matriz de saberes deve conter ao menos 1 elemento."); } if (planoCicloDto.IdsObjetivosDesenvolvimento == null || !planoCicloDto.IdsObjetivosDesenvolvimento.Any()) { throw new NegocioException("Os objetivos de desenvolvimento sustentável devem conter ao menos 1 elemento."); } } planoCiclo.Descricao = planoCicloDto.Descricao; planoCiclo.CicloId = planoCicloDto.CicloId; planoCiclo.Ano = planoCicloDto.Ano; planoCiclo.EscolaId = planoCicloDto.EscolaId; return(planoCiclo); }
private void AjustarObjetivos(PlanoCiclo planoCiclo, PlanoCicloDto planoCicloDto) { var objetivosPlanoCiclo = repositorioObjetivoDesenvolvimentoPlano.ObterObjetivosDesenvolvimentoPorIdPlano(planoCiclo.Id); var idsObjetivos = objetivosPlanoCiclo?.Select(c => c.ObjetivoDesenvolvimentoId)?.ToList(); InserirObjetivos(planoCicloDto, idsObjetivos); RemoverObjetivos(planoCicloDto, objetivosPlanoCiclo); }
private void AjustarMatrizes(PlanoCiclo planoCiclo, PlanoCicloDto planoCicloDto) { var matrizesPlanoCiclo = repositorioMatrizSaberPlano.ObterMatrizesPorIdPlano(planoCiclo.Id); var idsMatrizes = matrizesPlanoCiclo?.Select(c => c.MatrizSaberId)?.ToList(); RemoverMatrizes(planoCicloDto, matrizesPlanoCiclo); InserirMatrizes(planoCiclo, planoCicloDto, idsMatrizes); }
private void InserirMatrizes(PlanoCiclo planoCiclo, PlanoCicloDto planoCicloDto, List <long> idsMatrizes) { var matrizesIncluir = planoCicloDto.IdsMatrizesSaber.Except(idsMatrizes); foreach (var idMatrizIncluir in matrizesIncluir) { repositorioMatrizSaberPlano.Salvar(new MatrizSaberPlano() { MatrizSaberId = idMatrizIncluir, PlanoId = planoCiclo.Id }); } }