public async Task PublishEvent(string eventName, string eventKey, object eventData, DateTime?effectiveDate = null) { _logger.LogDebug("Creating event {0} {1}", eventName, eventKey); Event evt = new Event(); evt.EventTime = effectiveDate.HasValue ? effectiveDate.Value.ToUniversalTime() : DateTime.Now.ToUniversalTime(); evt.EventData = eventData; evt.EventKey = eventKey; evt.EventName = eventName; evt.IsProcessed = false; string eventId = await _persistenceStore.CreateEvent(evt); await _queueProvider.QueueWork(eventId, QueueType.Event); }