public void AddRevision(string key, TemporalMetadata temporal)
        {
            if (temporal.EffectiveStart == null || temporal.EffectiveUntil == null ||
                temporal.AssertedStart == null || temporal.AssertedUntil == null)
                throw new ArgumentException("All temporal dates must be entered.");

            Revisions.Add(new RevisionInfo {
                                               Key = key,
                                               Status = temporal.Status,
                                               Deleted = temporal.Deleted,
                                               Pending = temporal.Pending,
                                               EffectiveStart = temporal.EffectiveStart.Value,
                                               EffectiveUntil = temporal.EffectiveUntil.Value,
                                               AssertedStart = temporal.AssertedStart.Value,
                                               AssertedUntil = temporal.AssertedUntil.Value
                                           });
        }
        public void AddRevision(string key, TemporalMetadata temporal)
        {
            if (temporal.EffectiveStart == null || temporal.EffectiveUntil == null ||
                temporal.AssertedStart == null || temporal.AssertedUntil == null)
            {
                throw new ArgumentException("All temporal dates must be entered.");
            }

            Revisions.Add(new RevisionInfo {
                Key            = key,
                Status         = temporal.Status,
                Deleted        = temporal.Deleted,
                Pending        = temporal.Pending,
                EffectiveStart = temporal.EffectiveStart.Value,
                EffectiveUntil = temporal.EffectiveUntil.Value,
                AssertedStart  = temporal.AssertedStart.Value,
                AssertedUntil  = temporal.AssertedUntil.Value
            });
        }