public StatusCodeResult Post([FromBody] RootObject rootObject)
        {
            //_telemetryClient.TrackTrace(rootObject.DateTime + ":" + rootObject.CountryCode);
            List <string> tList = new List <string>();

            foreach (Accident i in rootObject.Accidents)
            {
                var guid = Guid.NewGuid().ToString();
                i.TransactionId = guid;
                tList.Add(guid);
            }
            try
            {
                using (var kafkaClient = new MyKafkaProducer(brokerList, topic))
                {
                    var jstr = JsonConvert.SerializeObject(rootObject);
                    //_telemetryClient.TrackTrace(jstr);
                    _logger.LogInformation(jstr);
                    kafkaClient.produce(jstr);
                    //_logger.LogInformation($"Delivered at '{deliveryLog.topicTimeStamp}' to topic '{deliveryLog.topic}' offset '{deliveryLog.offset}'");
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.InnerException.Message);
                return(StatusCode(500));
            }
            return(StatusCode(200));
        }
        public async Task <StatusCodeResult> Post([FromBody] RootObject rootObject)
        {
            //_telemetryClient.TrackTrace(rootObject.DateTime + ":" + rootObject.CountryCode);
            List <string> tList = new List <string>();

            foreach (Accident i in rootObject.Accidents)
            {
                var guid = Guid.NewGuid().ToString();
                i.TransactionId = guid;
                tList.Add(guid);
            }
            CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();

            try
            {
                using (var kafkaClient = new MyKafkaProducer(brokerList, topic))
                {
                    var jstr = JsonConvert.SerializeObject(rootObject);
                    //_telemetryClient.TrackTrace(jstr);
                    //_logger.LogInformation(jstr);
                    //var dr = await kafkaClient.produceAsyncWithConnection(brokerList, topic, jstr);

                    // 3sec待機してタスクをキャンセル
                    cancellationTokenSource.CancelAfter(3000);
                    var dr = await kafkaClient.produceAsync(jstr, cancellationTokenSource.Token);

                    _logger.LogInformation($"Delivered at '{dr.topicTimeStamp}' to topic '{dr.topic}' offset '{dr.offset}'");
                }
            }
            catch (Exception ex)
            {
                //_logger.LogError(ex.Message);
                _logger.LogError(ex.StackTrace);
                return(StatusCode(500));
            }
            return(StatusCode(200));
        }