Example #1
0
        public Message <TKey, TValue> BuildFrom(IKafkaEventData eventData)
        {
            var msg = new Message <TKey, TValue>()
            {
                Value = (TValue)eventData.Value,
            };

            if (eventData.Key != null)
            {
                if (!(eventData.Key is TKey keyValue))
                {
                    throw new ArgumentException($"Key value is not of the expected type. Expected: {typeof(TKey).Name}. Actual: {eventData.Key.GetType().Name}");
                }

                msg.Key = keyValue;
            }

            if (eventData.Headers?.Count > 0)
            {
                msg.Headers = new Headers();
                foreach (var header in eventData.Headers)
                {
                    msg.Headers.Add(header.Key, header.Value);
                }
            }

            return(msg);
        }
 private static void AddBindingData(Dictionary <string, object> bindingData, IKafkaEventData eventData)
 {
     bindingData.Add(nameof(IKafkaEventData.Key), eventData.Key);
     bindingData.Add(nameof(IKafkaEventData.Partition), eventData.Partition);
     bindingData.Add(nameof(IKafkaEventData.Topic), eventData.Topic);
     bindingData.Add(nameof(IKafkaEventData.Timestamp), eventData.Timestamp);
     bindingData.Add(nameof(IKafkaEventData.Offset), eventData.Offset);
 }
Example #3
0
 public static KafkaTriggerInput New(IKafkaEventData eventData)
 {
     return(new KafkaTriggerInput
     {
         Events = new[]
         {
             eventData
         },
         _selector = 0,
     });
 }
        public Task SetValueAsync(object value, CancellationToken cancellationToken)
        {
            if (value == null)
            {
                return(Task.FromResult(0));
            }

            Debug.Assert(value is T);
            IKafkaEventData message = converter.Convert((T)value);

            Debug.Assert(message != null);

            return(entity.SendAndCreateEntityIfNotExistsAsync(message, functionInstanceId, cancellationToken));
        }
Example #5
0
 /// <summary>
 /// Adds an item, returning the current pending amount
 /// </summary>
 internal int Add(IKafkaEventData kafkaEventData)
 {
     this.currentBatch.Add(kafkaEventData);
     return(this.currentBatch.Count);
 }