예제 #1
0
        /// <summary>
        /// Override the key - as the JSON serialized version loses the Type.
        /// </summary>
        private static Beef.Events.EventData OverrideKey(Beef.Events.EventData ed, EventHubs.EventData eh)
        {
            if (eh.Properties.TryGetValue(KeyPropertyName, out var key))
            {
                ed.Key = key;
            }

            return(ed);
        }
예제 #2
0
        /// <summary>
        /// Converts the <see cref="Beef.Events.EventData"/> to a corresponding <see cref="EventHubs.EventData"/>.
        /// </summary>
        /// <param name="eventData">The <see cref="EventHubs.EventData"/>.</param>
        /// <returns>The <see cref="Beef.Events.EventData"/>.</returns>
        public static EventHubs.EventData ToEventHubsEventData(this Beef.Events.EventData eventData)
        {
            if (eventData == null)
            {
                throw new ArgumentNullException(nameof(eventData));
            }

            if (string.IsNullOrEmpty(eventData.Subject))
            {
                throw new ArgumentException("Subject property is required to be set.", nameof(eventData));
            }

            var json  = JsonConvert.SerializeObject(eventData);
            var bytes = Encoding.UTF8.GetBytes(json);
            var ed    = new EventHubs.EventData(bytes);

            ed.Properties.Add(SubjectPropertyName, eventData.Subject);
            ed.Properties.Add(ActionPropertyName, eventData.Action);
            ed.Properties.Add(TenantIdPropertyName, eventData.TenantId);

            return(ed);
        }