コード例 #1
0
        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!"
            });
        }
コード例 #2
0
        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!"
            });
        }
コード例 #3
0
        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}"
                }));
            }
        }