public bool DeepEquals(DestinyHistoricalStatsAccountResult?other)
 {
     return(other is not null &&
            (MergedDeletedCharacters is not null ? MergedDeletedCharacters.DeepEquals(other.MergedDeletedCharacters) : other.MergedDeletedCharacters is null) &&
            (MergedAllCharacters is not null ? MergedAllCharacters.DeepEquals(other.MergedAllCharacters) : other.MergedAllCharacters is null) &&
            Characters.DeepEqualsList(other.Characters));
 }
        public bool Equals(DestinyHistoricalStatsAccountResult input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     MergedDeletedCharacters == input.MergedDeletedCharacters ||
                     (MergedDeletedCharacters != null && MergedDeletedCharacters.Equals(input.MergedDeletedCharacters))
                     ) &&
                 (
                     MergedAllCharacters == input.MergedAllCharacters ||
                     (MergedAllCharacters != null && MergedAllCharacters.Equals(input.MergedAllCharacters))
                 ) &&
                 (
                     Characters == input.Characters ||
                     (Characters != null && Characters.SequenceEqual(input.Characters))
                 ));
        }
 public void Update(DestinyHistoricalStatsAccountResult?other)
 {
     if (other is null)
     {
         return;
     }
     if (!MergedDeletedCharacters.DeepEquals(other.MergedDeletedCharacters))
     {
         MergedDeletedCharacters.Update(other.MergedDeletedCharacters);
         OnPropertyChanged(nameof(MergedDeletedCharacters));
     }
     if (!MergedAllCharacters.DeepEquals(other.MergedAllCharacters))
     {
         MergedAllCharacters.Update(other.MergedAllCharacters);
         OnPropertyChanged(nameof(MergedAllCharacters));
     }
     if (!Characters.DeepEqualsList(other.Characters))
     {
         Characters = other.Characters;
         OnPropertyChanged(nameof(Characters));
     }
 }