public bool DeepEquals(DestinyItemObjectivesComponent?other)
 {
     return(other is not null &&
            Objectives.DeepEqualsList(other.Objectives) &&
            (FlavorObjective is not null ? FlavorObjective.DeepEquals(other.FlavorObjective) : other.FlavorObjective is null) &&
            DateCompleted == other.DateCompleted);
 }
 public bool DeepEquals(DestinyRecordComponent?other)
 {
     return(other is not null &&
            State == other.State &&
            Objectives.DeepEqualsList(other.Objectives) &&
            IntervalObjectives.DeepEqualsList(other.IntervalObjectives) &&
            IntervalsRedeemedCount == other.IntervalsRedeemedCount &&
            CompletedCount == other.CompletedCount &&
            RewardVisibilty.DeepEqualsListNaive(other.RewardVisibilty));
 }
 public void Update(DestinyItemObjectivesComponent?other)
 {
     if (other is null)
     {
         return;
     }
     if (!Objectives.DeepEqualsList(other.Objectives))
     {
         Objectives = other.Objectives;
         OnPropertyChanged(nameof(Objectives));
     }
     if (!FlavorObjective.DeepEquals(other.FlavorObjective))
     {
         FlavorObjective.Update(other.FlavorObjective);
         OnPropertyChanged(nameof(FlavorObjective));
     }
     if (DateCompleted != other.DateCompleted)
     {
         DateCompleted = other.DateCompleted;
         OnPropertyChanged(nameof(DateCompleted));
     }
 }
 public void Update(DestinyRecordComponent?other)
 {
     if (other is null)
     {
         return;
     }
     if (State != other.State)
     {
         State = other.State;
         OnPropertyChanged(nameof(State));
     }
     if (!Objectives.DeepEqualsList(other.Objectives))
     {
         Objectives = other.Objectives;
         OnPropertyChanged(nameof(Objectives));
     }
     if (!IntervalObjectives.DeepEqualsList(other.IntervalObjectives))
     {
         IntervalObjectives = other.IntervalObjectives;
         OnPropertyChanged(nameof(IntervalObjectives));
     }
     if (IntervalsRedeemedCount != other.IntervalsRedeemedCount)
     {
         IntervalsRedeemedCount = other.IntervalsRedeemedCount;
         OnPropertyChanged(nameof(IntervalsRedeemedCount));
     }
     if (CompletedCount != other.CompletedCount)
     {
         CompletedCount = other.CompletedCount;
         OnPropertyChanged(nameof(CompletedCount));
     }
     if (!RewardVisibilty.DeepEqualsListNaive(other.RewardVisibilty))
     {
         RewardVisibilty = other.RewardVisibilty;
         OnPropertyChanged(nameof(RewardVisibilty));
     }
 }