public static void Run([QueueTrigger("queue-cotacoes", Connection = "AzureWebJobsStorage")]string myQueueItem, ILogger log) { log.LogInformation($"CotacoesQueueTrigger - Dados: {myQueueItem}"); Cotacao cotacao = null; try { cotacao = JsonSerializer.Deserialize<Cotacao>(myQueueItem, new JsonSerializerOptions() { PropertyNameCaseInsensitive = true }); } catch { log.LogInformation($"CotacoesQueueTrigger - Erro durante a deserialização"); } if (cotacao == null) return; var validationResult = new CotacaoValidator().Validate(cotacao); if (validationResult.IsValid) { log.LogInformation($"CotacoesQueueTrigger - Dados pós formatação: {JsonSerializer.Serialize(cotacao)}"); CotacoesRepository.Save(cotacao); log.LogInformation("CotacoesQueueTrigger - Transação registrada com sucesso!"); } else { log.LogInformation("CotacoesQueueTrigger - Dados inválidos para a Transação"); } }
public void Run([QueueTrigger("queue-cotacoes", Connection = "AzureWebJobsStorage")] string myQueueItem, ILogger log) { bool dadosValidos; Cotacao cotacao = null; try { cotacao = JsonSerializer.Deserialize <Cotacao>(myQueueItem); var resultadoValidator = new CotacaoValidator().Validate(cotacao); dadosValidos = resultadoValidator.IsValid; if (!dadosValidos) { log.LogError( $"MoedasQueueTrigger - Erros de validação: {resultadoValidator.ToString()}"); } } catch { dadosValidos = false; log.LogError($"MoedasQueueTrigger - Erro ao deserializar dados: {myQueueItem}"); } if (dadosValidos) { var dadosCotacao = _context.Cotacoes .Where(c => c.Sigla == cotacao.Sigla) .FirstOrDefault(); if (dadosCotacao != null) { dadosCotacao.UltimaCotacao = DateTime.Now; dadosCotacao.Valor = cotacao.Valor; _context.SaveChanges(); } log.LogInformation($"MoedasQueueTrigger: {myQueueItem}"); } }