in src/DotPulsar/Internal/Extensions/MessageMetadataExtensions.cs [23:58]
public static DateTime GetDeliverAtTimeAsDateTime(this Metadata metadata)
=> metadata.GetDeliverAtTimeAsDateTimeOffset().UtcDateTime;
public static void SetDeliverAtTime(this Metadata metadata, DateTime timestamp)
=> metadata.SetDeliverAtTime(new DateTimeOffset(timestamp));
public static DateTimeOffset GetDeliverAtTimeAsDateTimeOffset(this Metadata metadata)
=> DateTimeOffset.FromUnixTimeMilliseconds(metadata.DeliverAtTime);
public static void SetDeliverAtTime(this Metadata metadata, DateTimeOffset timestamp)
=> metadata.DeliverAtTime = timestamp.ToUnixTimeMilliseconds();
// Event time
public static DateTime GetEventTimeAsDateTime(this Metadata metadata)
=> metadata.GetEventTimeAsDateTimeOffset().UtcDateTime;
public static void SetEventTime(this Metadata metadata, DateTime timestamp)
=> metadata.SetEventTime(new DateTimeOffset(timestamp));
public static DateTimeOffset GetEventTimeAsDateTimeOffset(this Metadata metadata)
=> DateTimeOffset.FromUnixTimeMilliseconds((long) metadata.EventTime);
public static void SetEventTime(this Metadata metadata, DateTimeOffset timestamp)
=> metadata.EventTime = (ulong) timestamp.ToUnixTimeMilliseconds();
// Key
public static byte[]? GetKeyAsBytes(this Metadata metadata)
{
if (metadata.PartitionKey is null)
return null;
if (metadata.PartitionKeyB64Encoded)
return Convert.FromBase64String(metadata.PartitionKey);
return Encoding.UTF8.GetBytes(metadata.PartitionKey);
}