public void Handle(WorkshopCreated @event) { using (var repository = this.contextFactory.Create()) { var dto = DbContext.Find <WorkshopView>(@event.SourceId); if (dto != null) { logger.LogWarning( "Ignoring ConferenceCreated event for conference with ID {0} as it was already created.", @event.SourceId); } else { DbContext.Set <WorkshopView>().Add( new WorkshopView( @event.SourceId, @event.Slug, @event.Name, @event.Description, @event.Location, @event.Tagline, @event.TwitterSearch, @event.RegisterDate, Enumerable.Empty <AnchorType>())); repository.SaveChanges(); } } }
private async Task DoWork(CancellationToken stoppingToken) { const string topic = "build.workshop.something"; var newWorkshop = new WorkshopCreated { Id = Guid.NewGuid().ToString(), Title = "Kafka - The basics", Date = DateTime.Now.ToString("f") }; using (var producer = _producerFactory.Create()) { await producer.ProduceAsync(topic : topic, message : new Message <string, string>() { Key = Guid.NewGuid().ToString(), Value = MessagingHelper.MessageToEnvelope(newWorkshop, "workshop_created", Guid.NewGuid().ToString()) }); } }