public void Processar(dto.UsuarioParaProcessar usuarioParaProcessar) { try { var usuarioId = usuarioParaProcessar.UsuarioId; pontuacaoService.ProcessarIndividual(usuarioId); pontuacaoService.ProcessarTotal(usuarioId); var classificacao = repositorio.Obter(usuarioId); nivelService.Processar(usuarioId, classificacao.Pontos, classificacao.EmpresaId); saldoService.Processar(usuarioId); enfileirador.EnfileirarParaPosClassificador(usuarioParaProcessar); } catch (Exception ex) { if (usuarioParaProcessar.Tentativa == 10) { //## TODO throw ex; } else { usuarioParaProcessar.Tentativa++; enfileirador.EnfileirarParaClassificador(usuarioParaProcessar); } } }
public void Publicar(coredto.UsuarioParaProcessar usuarioParaProcessar) { var responsePerfil = perfilClient.Obter(usuarioParaProcessar.UsuarioId, coreenums.RedeSocialEnum.twitch); if (responsePerfil.Success) { var perfil = responsePerfil.Item; var responseTwitchInfo = empresaClient.ObterInfoTwitch(perfil.EmpresaId); responseTwitchInfo.ThrownIfError(); var twitchInfo = responseTwitchInfo.Item; var claims = GerarClaims(perfil, twitchInfo); var token = jwt.Gerar(twitchInfo.ExtensionSecretId, claims); var pontuacao = ObterPontuacaoTotal(usuarioParaProcessar.UsuarioId); var message = GerarMessage(pontuacao, perfil); var headers = GerarHeader(twitchInfo, token); var url = GerarUrl(twitchInfo); var response = corehelper.WebRequestHelper.Post(url, message, headers); response.ThrownIfError(); } }
public void Processar(coredto.UsuarioParaProcessar usuarioParaProcessar) { try { var tasks = new List <Task>(); var tarefas = new List <ITarefaPosClassificador>(); tarefas.Add(new tarefas.Firebase(rtdbAtividadeClient)); tarefas.Add(new tarefas.TwitchWhisper(notificadorClient)); foreach (var tarefa in tarefas) { tasks.Add(Task.Run(() => { tarefa.Executar(usuarioParaProcessar); })); } Task.WaitAll(tasks.ToArray()); } catch (Exception ex) { //## TODO log } }
public void Executar(coredto.UsuarioParaProcessar usuarioParaProcessar) { rtdbAtividadeClient.RegistrarClassificacao(usuarioParaProcessar.UsuarioId); }
public void TwitchPubSub(coredto.UsuarioParaProcessar usuarioParaProcessar) { enfileirador.EnfileirarParaNotificadorTwichPubSub(usuarioParaProcessar); }