Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
        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}");
            }
        }