public void Update(DestinyQuestStatus?other)
 {
     if (other is null)
     {
         return;
     }
     if (QuestHash != other.QuestHash)
     {
         QuestHash = other.QuestHash;
         OnPropertyChanged(nameof(QuestHash));
     }
     if (StepHash != other.StepHash)
     {
         StepHash = other.StepHash;
         OnPropertyChanged(nameof(StepHash));
     }
     if (!StepObjectives.DeepEqualsList(other.StepObjectives))
     {
         StepObjectives = other.StepObjectives;
         OnPropertyChanged(nameof(StepObjectives));
     }
     if (Tracked != other.Tracked)
     {
         Tracked = other.Tracked;
         OnPropertyChanged(nameof(Tracked));
     }
     if (ItemInstanceId != other.ItemInstanceId)
     {
         ItemInstanceId = other.ItemInstanceId;
         OnPropertyChanged(nameof(ItemInstanceId));
     }
     if (Completed != other.Completed)
     {
         Completed = other.Completed;
         OnPropertyChanged(nameof(Completed));
     }
     if (Redeemed != other.Redeemed)
     {
         Redeemed = other.Redeemed;
         OnPropertyChanged(nameof(Redeemed));
     }
     if (Started != other.Started)
     {
         Started = other.Started;
         OnPropertyChanged(nameof(Started));
     }
     if (VendorHash != other.VendorHash)
     {
         VendorHash = other.VendorHash;
         OnPropertyChanged(nameof(VendorHash));
     }
 }
 public bool DeepEquals(DestinyQuestStatus?other)
 {
     return(other is not null &&
            QuestHash == other.QuestHash &&
            StepHash == other.StepHash &&
            StepObjectives.DeepEqualsList(other.StepObjectives) &&
            Tracked == other.Tracked &&
            ItemInstanceId == other.ItemInstanceId &&
            Completed == other.Completed &&
            Redeemed == other.Redeemed &&
            Started == other.Started &&
            VendorHash == other.VendorHash);
 }
        public bool Equals(DestinyQuestStatus input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     QuestHash == input.QuestHash ||
                     (QuestHash.Equals(input.QuestHash))
                     ) &&
                 (
                     StepHash == input.StepHash ||
                     (StepHash.Equals(input.StepHash))
                 ) &&
                 (
                     StepObjectives == input.StepObjectives ||
                     (StepObjectives != null && StepObjectives.SequenceEqual(input.StepObjectives))
                 ) &&
                 (
                     Tracked == input.Tracked ||
                     (Tracked != null && Tracked.Equals(input.Tracked))
                 ) &&
                 (
                     ItemInstanceId == input.ItemInstanceId ||
                     (ItemInstanceId.Equals(input.ItemInstanceId))
                 ) &&
                 (
                     Completed == input.Completed ||
                     (Completed != null && Completed.Equals(input.Completed))
                 ) &&
                 (
                     Redeemed == input.Redeemed ||
                     (Redeemed != null && Redeemed.Equals(input.Redeemed))
                 ) &&
                 (
                     Started == input.Started ||
                     (Started != null && Started.Equals(input.Started))
                 ) &&
                 (
                     VendorHash == input.VendorHash ||
                     (VendorHash.Equals(input.VendorHash))
                 ));
        }