private void CriarParametrosEHEader(ComunicadoInserirAeDto comunicado, out string parametros, out StringContent input) { httpClient.DefaultRequestHeaders.Clear(); parametros = JsonConvert.SerializeObject(comunicado); input = new StringContent(parametros, Encoding.UTF8, "application/json"); input.Headers.Add("x-integration-key", configuration.GetSection("AE_ChaveIntegracao").Value); }
public async Task <string> Alterar(long id, ComunicadoInserirDto comunicadoDto) { Comunicado comunicado = BuscarComunicado(id); ComunicadoInserirAeDto comunicadoServico = new ComunicadoInserirAeDto(); var usuarioLogado = (await servicoUsuario.ObterUsuarioLogado()) ?? throw new NegocioException("Usuário logado não encontrado"); await ValidarAbrangenciaUsuario(comunicadoDto, usuarioLogado); MapearAlteracao(comunicadoDto, comunicado); try { unitOfWork.IniciarTransacao(); await repositorio.SalvarAsync(comunicado); MapearParaEntidadeServico(comunicadoServico, comunicado); await servicoAcompanhamentoEscolar.AlterarComunicado(comunicadoServico, id); unitOfWork.PersistirTransacao(); } catch { unitOfWork.Rollback(); throw; } return("Comunicado alterado com sucesso"); }
public async Task <string> Handle(SolicitarAlteracaoComunicadoEscolaAquiCommand request, CancellationToken cancellationToken) { // TODO: Criar Query Handler para Obter comunicado Comunicado comunicado = BuscarComunicado(request.Id); ComunicadoInserirAeDto comunicadoServico = new ComunicadoInserirAeDto(); var usuarioLogado = await _mediator.Send(new ObterUsuarioLogadoQuery()); await ValidarAbrangenciaUsuario(request, usuarioLogado); MapearAlteracao(request, comunicado); try { _unitOfWork.IniciarTransacao(); await _repositorioComunicado.SalvarAsync(comunicado); MapearParaEntidadeServico(comunicadoServico, comunicado); await _servicoAcompanhamentoEscolar.AlterarComunicado(comunicadoServico, request.Id); _unitOfWork.PersistirTransacao(); } catch { _unitOfWork.Rollback(); throw; } return("Comunicado alterado com sucesso"); }
public async Task CriarComunicado(ComunicadoInserirAeDto comunicado) { CriarParametrosEHEader(comunicado, out string parametros, out StringContent input); using (var resposta = await httpClient.PostAsync("v1/notificacao", input)) { if (!resposta.IsSuccessStatusCode) { await RegistrarLogSentryAsync(resposta, "criar comunicado", parametros.ToString()); throw new NegocioException("Não foi possível alterar os dados no aplicativo do aluno"); } } }
public async Task <string> Handle(SolicitarInclusaoComunicadoEscolaAquiCommand request, CancellationToken cancellationToken) { var comunicado = new Comunicado(); var comunicadoServico = new ComunicadoInserirAeDto(); await ValidarInsercao(request); MapearParaEntidade(request, comunicado); try { _unitOfWork.IniciarTransacao(); var id = await _repositorioComunicado.SalvarAsync(comunicado); // Grupos await SalvarComunicadosParaGrupos(id, request); comunicado.AtualizarIdAlunos(); comunicado.AtualizarIdTurmas(); // Turmas await SalvarComunicadosParaTurmas(comunicado.Turmas); // Alunos await SalvarComunicadosParaAlunos(comunicado.Alunos); MapearParaEntidadeServico(comunicadoServico, comunicado); // Criar comunicado no Escola Aqui await _servicoAcompanhamentoEscolar.CriarComunicado(comunicadoServico); _unitOfWork.PersistirTransacao(); } catch { _unitOfWork.Rollback(); throw; } return("Comunicado criado com sucesso!"); }
private void MapearParaEntidadeServico(ComunicadoInserirAeDto comunicadoServico, Comunicado comunicado) { comunicadoServico.Id = comunicado.Id; comunicadoServico.AlteradoEm = comunicado.AlteradoEm; comunicadoServico.AlteradoPor = comunicado.AlteradoPor; comunicadoServico.AlteradoRF = comunicado.AlteradoRF; comunicadoServico.DataEnvio = comunicado.DataEnvio; comunicadoServico.DataExpiracao = comunicado.DataExpiracao; comunicadoServico.Mensagem = comunicado.Descricao; comunicadoServico.Titulo = comunicado.Titulo; comunicadoServico.Grupo = string.Join(",", comunicado.Grupos.Select(x => x.Id.ToString()).ToArray()); comunicadoServico.CriadoEm = comunicado.CriadoEm; comunicadoServico.CriadoPor = comunicado.CriadoPor; comunicadoServico.CriadoRF = comunicado.CriadoRF; comunicadoServico.Alunos = comunicado.Alunos.Select(x => x.AlunoCodigo); comunicadoServico.AnoLetivo = comunicado.AnoLetivo; comunicadoServico.CodigoDre = comunicado.CodigoDre; comunicadoServico.CodigoUe = comunicado.CodigoUe; comunicadoServico.Turmas = comunicado.Turmas.Select(x => x.CodigoTurma); comunicadoServico.TipoComunicado = comunicado.TipoComunicado; comunicadoServico.Semestre = comunicado.Semestre; }
public async Task <string> Inserir(ComunicadoInserirDto comunicadoDto) { Comunicado comunicado = new Comunicado(); ComunicadoInserirAeDto comunicadoServico = new ComunicadoInserirAeDto(); await ValidarInsercao(comunicadoDto); MapearParaEntidade(comunicadoDto, comunicado); try { unitOfWork.IniciarTransacao(); var id = await repositorio.SalvarAsync(comunicado); await SalvarGrupos(id, comunicadoDto); comunicado.AtualizarIdAlunos(); comunicado.AtualizarIdTurmas(); await SalvarTurmas(comunicado.Turmas); await SalvarAlunos(comunicado.Alunos); MapearParaEntidadeServico(comunicadoServico, comunicado); await servicoAcompanhamentoEscolar.CriarComunicado(comunicadoServico); unitOfWork.PersistirTransacao(); } catch { unitOfWork.Rollback(); throw; } return("Comunicado criado com sucesso"); }