Пример #1
0
        public async Task <ActionResult> OperecaoAsync([FromBody] CriadoOperacaoEvento criadoOperacaoEvento)
        {
            var RESULT = await _produce.OperacaoAsync(criadoOperacaoEvento);

            if (RESULT.HasFails)
            {
                return(BadRequest(RESULT.Fails));
            }

            return(Ok(RESULT.Data));
        }
        public async Task <ResponseResult> OperacaoAsync(CriadoOperacaoEvento criadoOperacaoEventos)
        {
            criadoOperacaoEventos.Validate();

            if (criadoOperacaoEventos.Notifications.Any())
            {
                _response.AddNotifications(criadoOperacaoEventos.Notifications);
                return(_response);
            }

            string payload = $"=> {criadoOperacaoEventos.IdTransacao} Hora => {DateTime.Now}";

            try
            {
                var config = new ProducerConfig
                {
                    BootstrapServers = _options.Value.UrlBase
                };

                using (var producer = new ProducerBuilder <Null, string>(config).Build())
                {
                    var result = await producer.ProduceAsync(
                        _options.Value.Topic,
                        new Message <Null, string>
                    {
                        Value = ConvertPedidoToJson(criadoOperacaoEventos)
                    });

                    _response.AddValue($"Mensagem: {payload} | " +
                                       $"Status: { result.Status.ToString()}");
                }
            }
            catch (Exception ex)
            {
                _response.AddNotification(new Flunt.Notifications.Notification("OperacaoProducer", $"Exceção: {ex.GetType().FullName} | " + $"Mensagem: {ex.Message}"));
            }

            return(_response);
        }
 private string ConvertPedidoToJson(CriadoOperacaoEvento operacaoRequest) =>
 JsonConvert.SerializeObject(operacaoRequest);