public IEnumerable <string> ETags() { return(sourceSnapshot.IfNotNull() .Then(s => s.ETags) .Else(() => new string[0]) .Concat(eventHistory.Select(e => e.ETag).Distinct())); }
internal ProbabilisticAnswer HasETag(string etag) { if (WasSourcedFromSnapshot) { if (sourceSnapshot.ETags.MayContain(etag)) { return(ProbabilisticAnswer.Maybe); } return(ProbabilisticAnswer.No); } return(eventHistory.Select(e => e.ETag) .Any(e => e == etag) ? ProbabilisticAnswer.Yes : ProbabilisticAnswer.No); }