public static TDocumentItem FindMatchByUrl <TDocumentItem>(this IEnumerable <TDocumentItem> source, string url) where TDocumentItem : class, IDocumentItem { DocumentReference documentReference = DocumentReference.Create(url); IIndexedHashSet <TDocumentItem> tDocumentItems = source as IIndexedHashSet <TDocumentItem>; if (tDocumentItems != null) { return(tDocumentItems[documentReference.GetHashCode()]); } return(source.FirstOrDefault <TDocumentItem>((TDocumentItem d) => d.DocumentReference.GetHashCode() == documentReference.GetHashCode())); }
public void EqualsShouldCheckTitleAndAuthor() { var left = new DocumentReference { Title = "a", Author = "b" }; var right = new DocumentReference { Title = "a", Author = "b" }; Assert.AreEqual(left, right); Assert.IsTrue(left.Equals(right)); Assert.AreEqual(left.GetHashCode(), right.GetHashCode()); }
public override int GetHashCode() { return(_documentReference?.GetHashCode() ?? 0); }