Skip to content

Commit

Permalink
Implementado para obter a quantidade de respostas do aluno para prova…
Browse files Browse the repository at this point in the history
… TAI.
  • Loading branch information
FernandoGroeler committed Dec 19, 2023
1 parent 5d7a3b3 commit 6975cb6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,20 @@ public class AtualizarProvaAlunoCommandHandler : IRequestHandler<AtualizarProvaA

public AtualizarProvaAlunoCommandHandler(IRepositorioCache repositorioCache, IMediator mediator)
{
this.mediator = mediator ?? throw new System.ArgumentNullException(nameof(mediator));
this.repositorioCache = repositorioCache ?? throw new System.ArgumentNullException(nameof(repositorioCache));

this.mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
this.repositorioCache = repositorioCache ?? throw new ArgumentNullException(nameof(repositorioCache));
}

public async Task<bool> Handle(AtualizarProvaAlunoCommand request, CancellationToken cancellationToken)
{
if(request.ProvaAluno.Status == ProvaStatus.Finalizado)
{
if (request.ProvaAluno.Status == ProvaStatus.Finalizado)
request.ProvaAluno.FinalizadoEmServidor = DateTime.Now;
}

string chaveProvaAluno = string.Format(CacheChave.AlunoProva, request.ProvaAluno.ProvaId, request.ProvaAluno.AlunoRA);
await mediator.Send(new PublicarFilaSerapEstudantesCommand(RotasRabbit.IncluirProvaAluno, request.ProvaAluno));
var chaveProvaAluno = string.Format(CacheChave.AlunoProva, request.ProvaAluno.ProvaId, request.ProvaAluno.AlunoRA);

await mediator.Send(new PublicarFilaSerapEstudantesCommand(RotasRabbit.IncluirProvaAluno, request.ProvaAluno), cancellationToken);
await repositorioCache.SalvarRedisAsync(chaveProvaAluno, request.ProvaAluno);

return true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ public ObterProvaAlunoPorProvaIdsRaQueryHandler(IRepositorioCache repositorioCac
public async Task<IEnumerable<ProvaAluno>> Handle(ObterProvaAlunoPorProvaIdsRaQuery request, CancellationToken cancellationToken)
{
var lista = new List<ProvaAluno>();

foreach (var provaId in request.ProvaIds)
{
string chaveProvaAluno = string.Format(CacheChave.AlunoProva, provaId, request.AlunoRa);
var chaveProvaAluno = string.Format(CacheChave.AlunoProva, provaId, request.AlunoRa);
var provaAluno = await repositorioCache.ObterRedisAsync(chaveProvaAluno, () => repositorioProvaAluno.ObterPorProvaIdRaAsync(provaId , request.AlunoRa));

if(provaAluno != null)
if (provaAluno != null)
lista.Add(provaAluno);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,18 @@ private async Task<IEnumerable<ObterProvasRetornoDto>> ObterProvasRetorno(int te
}

var provaAluno = provasDoAluno.FirstOrDefault(a => a.ProvaId == prova.Id);
var totalItens = prova.TotalItens;

if (prova.FormatoTai)
{
var alunoRespostas = await mediator.Send(new ObterAlunoRespostasPorProvaIdRaQuery(prova.Id, long.Parse(alunoRa)));
totalItens = alunoRespostas.Count();
}

if (provaAluno is { Status: ProvaStatus.Finalizado or ProvaStatus.FinalizadoAutomaticamente })
{
provasParaRetornar.Add(new ObterProvasRetornoDto(prova.Descricao,
prova.TotalItens,
totalItens,
(int)provaAluno.Status,
prova.ObterDataInicioDownloadMais3Horas(),
prova.ObterDataInicioMais3Horas(),
Expand All @@ -139,7 +146,7 @@ private async Task<IEnumerable<ObterProvasRetornoDto>> ObterProvasRetorno(int te
status = provaAluno.Status;

provasParaRetornar.Add(new ObterProvasRetornoDto(prova.Descricao,
prova.TotalItens,
totalItens,
(int)status,
prova.ObterDataInicioDownloadMais3Horas(),
prova.ObterDataInicioMais3Horas(),
Expand Down

0 comments on commit 6975cb6

Please sign in to comment.