예제 #1
0
        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;
            }
        }
예제 #2
0
 private async Task <bool> EnviaParaSGP(NotaSgpDto notaSgpDto)
 => await mediator.Send(new PublicaFilaRabbitSgpCommand(RotasRabbitSgp.RotaAtividadesNotasSync, notaSgpDto));