public async Task <Resultado> Post( [FromServices] IConfiguration configuration, Acao acao) { var cotacaoAcao = new CotacaoAcao() { Codigo = acao.Codigo, Valor = acao.Valor, CodCorretora = configuration["Corretora:Codigo"], NomeCorretora = configuration["Corretora:Nome"] }; var conteudoAcao = JsonSerializer.Serialize(cotacaoAcao); _logger.LogInformation($"Dados: {conteudoAcao}"); var body = Encoding.UTF8.GetBytes(conteudoAcao); string queue = configuration["Queue-AzureServiceBus"]; var client = new QueueClient( configuration.GetConnectionString("AzureServiceBus"), queue); await client.SendAsync(new Message(body)); _logger.LogInformation( $"Azure Service Bus - Envio para a queue {queue} concluído"); return(new Resultado() { Mensagem = "Informações de ação enviadas com sucesso!" }); }
public async Task <Resultado> Post( [FromServices] IConfiguration configuration, [FromServices] ILogger <AcoesController> logger, Acao acao) { var cotacaoAcao = new CotacaoAcao() { Codigo = acao.Codigo, Valor = acao.Valor, CodCorretora = configuration["Corretora:Codigo"], NomeCorretora = configuration["Corretora:Nome"] }; var conteudoAcao = JsonSerializer.Serialize(cotacaoAcao); logger.LogInformation($"Dados: {conteudoAcao}"); string topic = configuration["ApacheKafka:Topic"]; var configKafka = new ProducerConfig { BootstrapServers = configuration["ApacheKafka:Broker"] }; using (var producer = new ProducerBuilder <Null, string>(configKafka).Build()) { var result = await producer.ProduceAsync( topic, new Message <Null, string> { Value = conteudoAcao }); logger.LogInformation( $"Apache Kafka - Envio para o tópico {topic} concluído | " + $"{conteudoAcao} | Status: { result.Status.ToString()}"); } return(new Resultado() { Mensagem = "Informações de ação enviadas com sucesso!" }); }
public ActionResult <CotacaoAcao> GetCotacao(string codigo) { if (String.IsNullOrWhiteSpace(codigo)) { _logger.LogError( $"GetCotacao - Codigo de Acao nao informado"); return(new BadRequestObjectResult(new { Sucesso = false, Mensagem = "Código de Ação não informado" })); } _logger.LogInformation($"GetCotacao - codigo da Acao: {codigo}"); CotacaoAcao acao = null; if (!String.IsNullOrWhiteSpace(codigo)) { acao = _repository.Get(codigo.ToUpper()); } if (acao != null) { _logger.LogInformation( $"GetCotacao - Acao: {codigo} | Valor atual: {acao.Valor} | Ultima atualizacao: {acao.Data}"); return(new OkObjectResult(acao)); } else { _logger.LogError( $"GetCotacao - Codigo de Acao nao encontrado: {codigo}"); return(new NotFoundObjectResult(new { Sucesso = false, Mensagem = $"Código de Ação não encontrado: {codigo}" })); } }