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