public async Task <bool> Executar(MensagemRabbit mensagem) { var importacaoDto = mensagem.ObterObjetoMensagem <SincronizarImportacaoNotasDto>(); try { var usuario = await mediator.Send(new ObterUsuarioPorClassroomIdQuery(importacaoDto.Nota.UsuarioId)); var status = Enum.Parse <StatusGSA>(importacaoDto.Nota.StatusNota); await mediator.Send(new GravarNotaGsaCommand(importacaoDto.Nota.Id, importacaoDto.DadosAvaliacao.Id, importacaoDto.Nota.UsuarioId, importacaoDto.Nota.Nota, status, importacaoDto.Nota.DataInclusao, importacaoDto.Nota.DataAlteracao)); if (usuario == null) { return(true); } var notaFinal = TratarNotaAluno(importacaoDto.DadosAvaliacao, importacaoDto.Nota); var notaSgpDto = new NotaSgpDto(importacaoDto.DadosAvaliacao.TurmaId, importacaoDto.DadosAvaliacao.ComponenteCurricularId, importacaoDto.DadosAvaliacao.Id, status, notaFinal, importacaoDto.DadosAvaliacao.DataInclusao, importacaoDto.DadosAvaliacao.DataEntrega, usuario.Id, importacaoDto.DadosAvaliacao.Titulo); return(await EnviaParaSGP(notaSgpDto)); } catch { await mediator.Send(new PublicaFilaRabbitCommand(RotasRabbit.FilaGsaNotasAtividadesSyncErro, importacaoDto)); SentrySdk.CaptureMessage($"Não foi possível importar a nota {importacaoDto.Nota.Id} referente a atividade {importacaoDto.DadosAvaliacao.Id} do aluno {importacaoDto.Nota.UsuarioId}"); throw; } }
private async Task <bool> EnviaParaSGP(NotaSgpDto notaSgpDto) => await mediator.Send(new PublicaFilaRabbitSgpCommand(RotasRabbitSgp.RotaAtividadesNotasSync, notaSgpDto));