public override void Merge(DatabaseTask task) { var t = (TouchReferenceDocumentIfChangedTask)task; foreach (var kvp in t.ReferencesToCheck) { Etag etag; if (ReferencesToCheck.TryGetValue(kvp.Key, out etag) == false) { ReferencesToCheck[kvp.Key] = kvp.Value; } else { ReferencesToCheck[kvp.Key] = etag.CompareTo(kvp.Value) < 0 ? etag : kvp.Value; } } }
public void UpdateReferenceToCheck(KeyValuePair <string, Etag> doc) { Etag etag; if (ReferencesToCheck.TryGetValue(doc.Key, out etag) == false) { ReferencesToCheck[doc.Key] = doc.Value; return; } if (etag == doc.Value) { return; } ReferencesToCheck[doc.Key] = Etag.InvalidEtag; // different etags, force a touch }
public IEnumerable <string> GetReferencesForDebug() { return(ReferencesToCheck.Select(x => x.Key + ":" + x.Value)); }