public float Similarity(ChapterInfo other) { float count = 0F; float matches = 0F; count++; if (Title != null && Title.Equals(other.Title, StringComparison.InvariantCultureIgnoreCase)) { matches++; } count++; if (SourceHash != null && SourceHash.Equals(other.SourceHash)) { matches++; } count++; if (LangCode != null && LangCode.Equals(other.LangCode)) { matches++; } count++; if (Math.Abs(Duration.TotalSeconds - other.Duration.TotalSeconds) < 1) { matches++; } count++; if (Math.Round(FramesPerSecond * 1000) - Math.Round(other.FramesPerSecond * 1000) == 0) { matches++; } for (int i = 0; i < Chapters.Count; i++) { count = count + 2F; if (i < other.Chapters.Count) { if (Chapters[i].Name != null && Chapters[i].Name.Equals(other.Chapters[i].Name, StringComparison.InvariantCultureIgnoreCase)) { matches++; } if (Math.Abs(Chapters[i].Time.TotalSeconds - other.Chapters[i].Time.TotalSeconds) < 1) { matches++; } } } return(matches / count); }
public bool Equals(DestinyCollectibleDefinition input) { if (input == null) { return(false); } return (( DisplayProperties == input.DisplayProperties || (DisplayProperties != null && DisplayProperties.Equals(input.DisplayProperties)) ) && ( Scope == input.Scope || (Scope != null && Scope.Equals(input.Scope)) ) && ( SourceString == input.SourceString || (SourceString != null && SourceString.Equals(input.SourceString)) ) && ( SourceHash == input.SourceHash || (SourceHash.Equals(input.SourceHash)) ) && ( ItemHash == input.ItemHash || (ItemHash.Equals(input.ItemHash)) ) && ( AcquisitionInfo == input.AcquisitionInfo || (AcquisitionInfo != null && AcquisitionInfo.Equals(input.AcquisitionInfo)) ) && ( StateInfo == input.StateInfo || (StateInfo != null && StateInfo.Equals(input.StateInfo)) ) && ( PresentationInfo == input.PresentationInfo || (PresentationInfo != null && PresentationInfo.Equals(input.PresentationInfo)) ) && ( PresentationNodeType == input.PresentationNodeType || (PresentationNodeType != null && PresentationNodeType.Equals(input.PresentationNodeType)) ) && ( TraitIds == input.TraitIds || (TraitIds != null && TraitIds.SequenceEqual(input.TraitIds)) ) && ( TraitHashes == input.TraitHashes || (TraitHashes != null && TraitHashes.SequenceEqual(input.TraitHashes)) ) && ( ParentNodeHashes == input.ParentNodeHashes || (ParentNodeHashes != null && ParentNodeHashes.SequenceEqual(input.ParentNodeHashes)) ) && ( Hash == input.Hash || (Hash.Equals(input.Hash)) ) && ( Index == input.Index || (Index.Equals(input.Index)) ) && ( Redacted == input.Redacted || (Redacted != null && Redacted.Equals(input.Redacted)) )); }