public async Task Notify(VenueDescription venueDescription)
        {
            var venueDescriptionChanged = new VenueDescriptionChanged
            {
                venueGuid   = venueDescription.Venue.VenueGuid,
                description = new VenueDescriptionRepresentation
                {
                    name         = venueDescription.Name,
                    city         = venueDescription.City,
                    modifiedDate = venueDescription.ModifiedDate
                }
            };

            await publishEndpoint.Publish(venueDescriptionChanged);
        }
        public async Task Handle(VenueDescriptionChanged venueDescriptionChanged)
        {
            Console.WriteLine($"Updating index for venue {venueDescriptionChanged.description.name}.");
            try
            {
                string           venueGuid        = venueDescriptionChanged.venueGuid.ToString().ToLower();
                VenueDescription venueDescription = VenueDescription.FromRepresentation(venueDescriptionChanged.description);
                VenueDocument    updatedVenue     = new VenueDocument
                {
                    VenueGuid   = venueGuid,
                    Description = venueDescription
                };
                VenueDocument venue = await venueUpdater.UpdateAndGetLatestVenue(updatedVenue);

                await repository.UpdateShowsWithVenueDescription(venueGuid, venue.Description);

                Console.WriteLine("Succeeded");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }