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()}"); } } } } }); }