예제 #1
0
        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))
                 ));
        }