public void RecordDeliveryAttempt(DateTimeOffset deliveryAttemptTimestamp) { var updatedDeliveryAttempts = DeliveryAttempts .Union(new[] { deliveryAttemptTimestamp }) .OrderBy(d => d) .ToArray(); DeliveryAttempts = updatedDeliveryAttempts; }
public bool Equals(Snapshot other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(Equals(Payload, other.Payload) && string.Equals(EmitterId, other.EmitterId) && Equals(LastEvent, other.LastEvent) && Equals(CurrentTime, other.CurrentTime) && SequenceNr == other.SequenceNr && DeliveryAttempts.SetEquals(other.DeliveryAttempts) && PersistOnEventRequests.SetEquals(other.PersistOnEventRequests)); }
public Snapshot AddDeliveryAttempt(DeliveryAttempt deliveryAttempt) => new Snapshot(Payload, EmitterId, LastEvent, CurrentTime, SequenceNr, DeliveryAttempts.Add(deliveryAttempt), PersistOnEventRequests);