public async Task <IEnumerable <EntidadeBase> > Salvar(PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto) { Validar(planoAnualTerritorioSaberDto); var listaAuditoria = new List <EntidadeBase>(); unitOfWork.IniciarTransacao(); var usuarioAtual = servicoUsuario.ObterUsuarioLogado().Result; if (string.IsNullOrWhiteSpace(usuarioAtual.CodigoRf)) { throw new NegocioException("Não foi possível obter o RF do usuário."); } foreach (var bimestrePlanoAnual in planoAnualTerritorioSaberDto.Bimestres) { PlanoAnualTerritorioSaber planoAnualTerritorioSaber = await ObterPlanoAnualTerritorioSaberSimplificado(planoAnualTerritorioSaberDto, bimestrePlanoAnual.Bimestre.Value); if (planoAnualTerritorioSaber != null) { if (usuarioAtual.PerfilAtual == Perfis.PERFIL_PROFESSOR && !servicoUsuario.PodePersistirTurmaDisciplina(usuarioAtual.CodigoRf, planoAnualTerritorioSaberDto.TurmaId.ToString(), planoAnualTerritorioSaberDto.TerritorioExperienciaId.ToString(), DateTime.Now).Result) { throw new NegocioException("Você não pode fazer alterações ou inclusões nesta turma, disciplina e data."); } } planoAnualTerritorioSaber = MapearParaDominio(planoAnualTerritorioSaberDto, planoAnualTerritorioSaber, bimestrePlanoAnual.Bimestre.Value, bimestrePlanoAnual.Desenvolvimento, bimestrePlanoAnual.Reflexao); repositorioPlanoAnualTerritorioSaber.Salvar(planoAnualTerritorioSaber); listaAuditoria.Add(planoAnualTerritorioSaber); } unitOfWork.PersistirTransacao(); return(listaAuditoria); }
public async Task <IActionResult> Post(PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto, [FromServices] IComandosPlanoAnualTerritorioSaber comandosPlanoAnualTerritorioSaber) { var resultado = await comandosPlanoAnualTerritorioSaber.Salvar(planoAnualTerritorioSaberDto); if (planoAnualTerritorioSaberDto.Id == default(int)) { return(Ok()); } return(Ok(resultado)); }
private void Validar(PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto) { var bimestresDescricaoVazia = planoAnualTerritorioSaberDto.Bimestres.Where(b => string.IsNullOrEmpty(b.Desenvolvimento) && string.IsNullOrEmpty(b.Reflexao)); if (bimestresDescricaoVazia.Any()) { throw new NegocioException($@"É necessário preencher o desenvolvimento e/ou reflexão do {string.Join(", ", bimestresDescricaoVazia.Select(b => $"{b.Bimestre}º"))} bimestre"); } }
private PlanoAnualTerritorioSaber MapearParaDominio(PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto, PlanoAnualTerritorioSaber planoAnualTerritorioSaber, int bimestre, string desenvolvimento, string reflexao) { if (planoAnualTerritorioSaber == null) { planoAnualTerritorioSaber = new PlanoAnualTerritorioSaber(); } planoAnualTerritorioSaber.Ano = planoAnualTerritorioSaberDto.AnoLetivo.Value; planoAnualTerritorioSaber.Bimestre = bimestre; planoAnualTerritorioSaber.Reflexao = reflexao ?? string.Empty; planoAnualTerritorioSaber.Desenvolvimento = desenvolvimento ?? string.Empty; planoAnualTerritorioSaber.EscolaId = planoAnualTerritorioSaberDto.EscolaId; planoAnualTerritorioSaber.TurmaId = planoAnualTerritorioSaberDto.TurmaId.Value; planoAnualTerritorioSaber.TerritorioExperienciaId = planoAnualTerritorioSaberDto.TerritorioExperienciaId; return(planoAnualTerritorioSaber); }
public void NaoDeveIncluirPlanoAnualTerritorioSaberEExibirMensagemErro() { _fixture._clientApi.DefaultRequestHeaders.Clear(); _fixture._clientApi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _fixture.GerarToken(new Permissao[] { Permissao.PT_I, Permissao.PT_C })); PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto = CriarDtoPlanoAnualTerritorioSaber(); planoAnualTerritorioSaberDto.EscolaId = null; var jsonParaPost = new StringContent(JsonConvert.SerializeObject(planoAnualTerritorioSaberDto), Encoding.UTF8, "application/json"); var postResult = _fixture._clientApi.PostAsync("api/v1/planos/anual/territorio-saber/", jsonParaPost).Result; Assert.False(postResult.IsSuccessStatusCode); var jsonErro = postResult.Content.ReadAsStringAsync().Result; var retornoBase = JsonConvert.DeserializeObject <RetornoBaseDto>(jsonErro); Assert.Contains(retornoBase.Mensagens, c => c.Equals("A escola deve ser informada")); }
private async Task <PlanoAnualTerritorioSaber> ObterPlanoAnualTerritorioSaberSimplificado(PlanoAnualTerritorioSaberDto planoAnualTerritorioSaberDto, int bimestre) { return(await repositorioPlanoAnualTerritorioSaber.ObterPlanoAnualTerritorioSaberSimplificadoPorAnoEscolaBimestreETurma(planoAnualTerritorioSaberDto.AnoLetivo.Value, planoAnualTerritorioSaberDto.EscolaId, planoAnualTerritorioSaberDto.TurmaId.Value, bimestre, planoAnualTerritorioSaberDto.TerritorioExperienciaId)); }