public bool DeepEquals(UserMembershipData?other)
 {
     return(other is not null &&
            DestinyMemberships.DeepEqualsList(other.DestinyMemberships) &&
            PrimaryMembershipId == other.PrimaryMembershipId &&
            (BungieNetUser is not null ? BungieNetUser.DeepEquals(other.BungieNetUser) : other.BungieNetUser is null));
 }
        public bool Equals(UserMembershipData input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     DestinyMemberships == input.DestinyMemberships ||
                     (DestinyMemberships != null && DestinyMemberships.SequenceEqual(input.DestinyMemberships))
                     ) &&
                 (
                     PrimaryMembershipId == input.PrimaryMembershipId ||
                     (PrimaryMembershipId.Equals(input.PrimaryMembershipId))
                 ) &&
                 (
                     BungieNetUser == input.BungieNetUser ||
                     (BungieNetUser != null && BungieNetUser.Equals(input.BungieNetUser))
                 ));
        }
 public void Update(UserMembershipData?other)
 {
     if (other is null)
     {
         return;
     }
     if (!DestinyMemberships.DeepEqualsList(other.DestinyMemberships))
     {
         DestinyMemberships = other.DestinyMemberships;
         OnPropertyChanged(nameof(DestinyMemberships));
     }
     if (PrimaryMembershipId != other.PrimaryMembershipId)
     {
         PrimaryMembershipId = other.PrimaryMembershipId;
         OnPropertyChanged(nameof(PrimaryMembershipId));
     }
     if (!BungieNetUser.DeepEquals(other.BungieNetUser))
     {
         BungieNetUser.Update(other.BungieNetUser);
         OnPropertyChanged(nameof(BungieNetUser));
     }
 }