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); }