// ========================================================================== // EnvelopeExtensions.cs // PinkParrot Headless CMS // ========================================================================== // Copyright (c) PinkParrot Group // All rights reserved. // ========================================================================== using System; using System.Globalization; using NodaTime; namespace PinkParrot.Infrastructure.CQRS { public static class EnvelopeExtensions { public static int EventNumber(this EnvelopeHeaders headers) { return headers[CommonHeaders.EventNumber].ToInt32(CultureInfo.InvariantCulture); } public static Envelope SetEventNumber(this Envelope envelope, int value) where T : class { envelope.Headers.Set(CommonHeaders.EventNumber, value); return envelope; } public static Guid CommitId(this EnvelopeHeaders headers) { return headers[CommonHeaders.CommitId].ToGuid(CultureInfo.InvariantCulture); } public static Envelope SetCommitId(this Envelope envelope, Guid value) where T : class { envelope.Headers.Set(CommonHeaders.CommitId, value); return envelope; } public static Guid AggregateId(this EnvelopeHeaders headers) { return headers[CommonHeaders.AggregateId].ToGuid(CultureInfo.InvariantCulture); } public static Envelope SetAggregateId(this Envelope envelope, Guid value) where T : class { envelope.Headers.Set(CommonHeaders.AggregateId, value); return envelope; } public static Guid EventId(this EnvelopeHeaders headers) { return headers[CommonHeaders.EventId].ToGuid(CultureInfo.InvariantCulture); } public static Envelope SetEventId(this Envelope envelope, Guid value) where T : class { envelope.Headers.Set(CommonHeaders.EventId, value); return envelope; } public static Instant Timestamp(this EnvelopeHeaders headers) { return headers[CommonHeaders.Timestamp].ToInstant(CultureInfo.InvariantCulture); } public static Envelope SetTimestamp(this Envelope envelope, Instant value) where T : class { envelope.Headers.Set(CommonHeaders.Timestamp, value); return envelope; } } }