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 RemoverMatrizes(PlanoCicloDto planoCicloDto, IEnumerable <MatrizSaberPlano> matrizesPlanoCiclo) { if (matrizesPlanoCiclo != null) { var matrizesRemover = matrizesPlanoCiclo.Where(c => !planoCicloDto.IdsMatrizesSaber.Contains(c.MatrizSaberId)); foreach (var matriz in matrizesRemover) { repositorioMatrizSaberPlano.Remover(matriz.Id); } } }
public void Salvar(PlanoCicloDto planoCicloDto) { var planoCiclo = MapearParaDominio(planoCicloDto); using (var transacao = unitOfWork.IniciarTransacao()) { planoCicloDto.Id = repositorioPlanoCiclo.Salvar(planoCiclo); AjustarMatrizes(planoCiclo, planoCicloDto); AjustarObjetivos(planoCiclo, planoCicloDto); unitOfWork.PersistirTransacao(); } }
private void RemoverObjetivos(PlanoCicloDto planoCicloDto, IEnumerable <RecuperacaoParalelaObjetivoDesenvolvimentoPlano> objetivosPlanoCiclo) { if (objetivosPlanoCiclo != null) { var objetivosRemover = objetivosPlanoCiclo.Where(c => !planoCicloDto.IdsObjetivosDesenvolvimento.Contains(c.ObjetivoDesenvolvimentoId)); foreach (var objetivo in objetivosRemover) { repositorioObjetivoDesenvolvimentoPlano.Remover(objetivo.Id); } } }
private void InserirObjetivos(PlanoCicloDto planoCicloDto, List <long> idsObjetivos) { var objetivosIncluir = planoCicloDto.IdsObjetivosDesenvolvimento.Except(idsObjetivos); foreach (var idObjetivo in objetivosIncluir) { repositorioObjetivoDesenvolvimentoPlano.Salvar(new RecuperacaoParalelaObjetivoDesenvolvimentoPlano() { ObjetivoDesenvolvimentoId = idObjetivo, PlanoId = planoCicloDto.Id }); } }
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 }); } }
public void Deve_Incluir_Plano_Ciclo2() { _fixture._clientApi.DefaultRequestHeaders.Clear(); _fixture._clientApi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.PDC_I, Permissao.PDC_C })); var planoDeCicloDto = new PlanoCicloDto(); planoDeCicloDto.Ano = 2020; planoDeCicloDto.CicloId = 1; planoDeCicloDto.Descricao = "Teste"; planoDeCicloDto.EscolaId = "1"; planoDeCicloDto.IdsMatrizesSaber = new List <long> { 1 }; planoDeCicloDto.IdsObjetivosDesenvolvimento = new List <long> { 1 }; var jsonParaPost = new StringContent(TransformarEmJson(planoDeCicloDto), UnicodeEncoding.UTF8, "application/json"); var postResult = _fixture._clientApi.PostAsync("api/v1/planos/ciclo/", jsonParaPost).Result; if (postResult.IsSuccessStatusCode) { var planoCicloCompletoResult = _fixture._clientApi.GetAsync("api/v1/planos/ciclo/2020/1/1").Result; if (planoCicloCompletoResult.IsSuccessStatusCode) { var planoCicloCompletoDto = JsonConvert.DeserializeObject <PlanoCicloCompletoDto>(planoCicloCompletoResult.Content.ReadAsStringAsync().Result); Assert.Equal(planoDeCicloDto.Descricao, planoCicloCompletoDto.Descricao); } else { var erro = postResult.Content.ReadAsStringAsync().Result; Assert.True(false, erro); } } else { var erro = postResult.Content.ReadAsStringAsync().Result; Assert.True(false, erro); } }
public IActionResult Post(PlanoCicloDto planoCicloDto) { comandosPlanoCiclo.Salvar(planoCicloDto); return(Ok()); }