public bool HandleOrderCanceledEvent(OrderCanceledEvent orderCanceledEvent)
        {
            Console.WriteLine("Handling order canceled event");

            var result = this.orderRepository.AddActivity(new OrderActivity
            {
                OccuredOn    = (long)orderCanceledEvent.CreatedOn,
                ActivityId   = orderCanceledEvent.EventId,
                UserId       = orderCanceledEvent.UserId,
                OrderId      = orderCanceledEvent.OrderId,
                ActivityType = ActivityType.Canceled
            });

            return(result != null);
        }
        public void Consume()
        {
            Task.Run(() =>
            {
                Console.WriteLine($"Starting Kafka subscription to {topic}");
                using (var consumer = new Consumer <Ignore, string>(config, null, new StringDeserializer(Encoding.UTF8)))
                {
                    consumer.OnError += (_, error) =>
                                        Console.WriteLine($"Error: {error}");

                    consumer.OnConsumeError += (_, error) =>
                                               Console.WriteLine($"Consume Error: {error}");

                    // consumer.Assign(new List<TopicPartitionOffset> { new TopicPartitionOffset(topic, 0, 0) });
                    consumer.Subscribe(new[] { topic });

                    while (true)
                    {
                        Message <Ignore, string> msg;
                        if (consumer.Consume(out msg, TimeSpan.FromSeconds(1)))
                        {
                            Console.WriteLine($"Topic: {msg.Topic} Partition: {msg.Partition} Offset: {msg.Offset} {msg.Value}");
                            string rawJson = msg.Value;
                            try
                            {
                                OrderCanceledEvent evt = JsonConvert.DeserializeObject <OrderCanceledEvent>(rawJson);
                                eventProcessor.HandleOrderCanceledEvent(evt);
                                var committedOffsets = consumer.CommitAsync(msg).Result;
                                if (committedOffsets.Error.HasError)
                                {
                                    Console.WriteLine($"Failed to commit offsets : {committedOffsets.Error.Reason}");
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.StackTrace);
                                Console.WriteLine($"Failed to handle order activity event : ${ex.ToString()}");
                            }
                        }
                    }
                }
            });
        }