public bool DeepEquals(DestinyVendorDefinition?other)
 {
     return(other is not null &&
            (DisplayProperties is not null ? DisplayProperties.DeepEquals(other.DisplayProperties) : other.DisplayProperties is null) &&
            VendorProgressionType == other.VendorProgressionType &&
            BuyString == other.BuyString &&
            SellString == other.SellString &&
            DisplayItemHash == other.DisplayItemHash &&
            InhibitBuying == other.InhibitBuying &&
            InhibitSelling == other.InhibitSelling &&
            FactionHash == other.FactionHash &&
            ResetIntervalMinutes == other.ResetIntervalMinutes &&
            ResetOffsetMinutes == other.ResetOffsetMinutes &&
            FailureStrings.DeepEqualsListNaive(other.FailureStrings) &&
            UnlockRanges.DeepEqualsList(other.UnlockRanges) &&
            VendorIdentifier == other.VendorIdentifier &&
            VendorPortrait == other.VendorPortrait &&
            VendorBanner == other.VendorBanner &&
            Enabled == other.Enabled &&
            Visible == other.Visible &&
            VendorSubcategoryIdentifier == other.VendorSubcategoryIdentifier &&
            ConsolidateCategories == other.ConsolidateCategories &&
            Actions.DeepEqualsList(other.Actions) &&
            Categories.DeepEqualsList(other.Categories) &&
            OriginalCategories.DeepEqualsList(other.OriginalCategories) &&
            DisplayCategories.DeepEqualsList(other.DisplayCategories) &&
            Interactions.DeepEqualsList(other.Interactions) &&
            InventoryFlyouts.DeepEqualsList(other.InventoryFlyouts) &&
            ItemList.DeepEqualsList(other.ItemList) &&
            Services.DeepEqualsList(other.Services) &&
            AcceptedItems.DeepEqualsList(other.AcceptedItems) &&
            ReturnWithVendorRequest == other.ReturnWithVendorRequest &&
            Locations.DeepEqualsList(other.Locations) &&
            Groups.DeepEqualsList(other.Groups) &&
            IgnoreSaleItemHashes.DeepEqualsListNaive(other.IgnoreSaleItemHashes) &&
            Hash == other.Hash &&
            Index == other.Index &&
            Redacted == other.Redacted);
 }
 public void Update(DestinyVendorDefinition?other)
 {
     if (other is null)
     {
         return;
     }
     if (!DisplayProperties.DeepEquals(other.DisplayProperties))
     {
         DisplayProperties.Update(other.DisplayProperties);
         OnPropertyChanged(nameof(DisplayProperties));
     }
     if (VendorProgressionType != other.VendorProgressionType)
     {
         VendorProgressionType = other.VendorProgressionType;
         OnPropertyChanged(nameof(VendorProgressionType));
     }
     if (BuyString != other.BuyString)
     {
         BuyString = other.BuyString;
         OnPropertyChanged(nameof(BuyString));
     }
     if (SellString != other.SellString)
     {
         SellString = other.SellString;
         OnPropertyChanged(nameof(SellString));
     }
     if (DisplayItemHash != other.DisplayItemHash)
     {
         DisplayItemHash = other.DisplayItemHash;
         OnPropertyChanged(nameof(DisplayItemHash));
     }
     if (InhibitBuying != other.InhibitBuying)
     {
         InhibitBuying = other.InhibitBuying;
         OnPropertyChanged(nameof(InhibitBuying));
     }
     if (InhibitSelling != other.InhibitSelling)
     {
         InhibitSelling = other.InhibitSelling;
         OnPropertyChanged(nameof(InhibitSelling));
     }
     if (FactionHash != other.FactionHash)
     {
         FactionHash = other.FactionHash;
         OnPropertyChanged(nameof(FactionHash));
     }
     if (ResetIntervalMinutes != other.ResetIntervalMinutes)
     {
         ResetIntervalMinutes = other.ResetIntervalMinutes;
         OnPropertyChanged(nameof(ResetIntervalMinutes));
     }
     if (ResetOffsetMinutes != other.ResetOffsetMinutes)
     {
         ResetOffsetMinutes = other.ResetOffsetMinutes;
         OnPropertyChanged(nameof(ResetOffsetMinutes));
     }
     if (!FailureStrings.DeepEqualsListNaive(other.FailureStrings))
     {
         FailureStrings = other.FailureStrings;
         OnPropertyChanged(nameof(FailureStrings));
     }
     if (!UnlockRanges.DeepEqualsList(other.UnlockRanges))
     {
         UnlockRanges = other.UnlockRanges;
         OnPropertyChanged(nameof(UnlockRanges));
     }
     if (VendorIdentifier != other.VendorIdentifier)
     {
         VendorIdentifier = other.VendorIdentifier;
         OnPropertyChanged(nameof(VendorIdentifier));
     }
     if (VendorPortrait != other.VendorPortrait)
     {
         VendorPortrait = other.VendorPortrait;
         OnPropertyChanged(nameof(VendorPortrait));
     }
     if (VendorBanner != other.VendorBanner)
     {
         VendorBanner = other.VendorBanner;
         OnPropertyChanged(nameof(VendorBanner));
     }
     if (Enabled != other.Enabled)
     {
         Enabled = other.Enabled;
         OnPropertyChanged(nameof(Enabled));
     }
     if (Visible != other.Visible)
     {
         Visible = other.Visible;
         OnPropertyChanged(nameof(Visible));
     }
     if (VendorSubcategoryIdentifier != other.VendorSubcategoryIdentifier)
     {
         VendorSubcategoryIdentifier = other.VendorSubcategoryIdentifier;
         OnPropertyChanged(nameof(VendorSubcategoryIdentifier));
     }
     if (ConsolidateCategories != other.ConsolidateCategories)
     {
         ConsolidateCategories = other.ConsolidateCategories;
         OnPropertyChanged(nameof(ConsolidateCategories));
     }
     if (!Actions.DeepEqualsList(other.Actions))
     {
         Actions = other.Actions;
         OnPropertyChanged(nameof(Actions));
     }
     if (!Categories.DeepEqualsList(other.Categories))
     {
         Categories = other.Categories;
         OnPropertyChanged(nameof(Categories));
     }
     if (!OriginalCategories.DeepEqualsList(other.OriginalCategories))
     {
         OriginalCategories = other.OriginalCategories;
         OnPropertyChanged(nameof(OriginalCategories));
     }
     if (!DisplayCategories.DeepEqualsList(other.DisplayCategories))
     {
         DisplayCategories = other.DisplayCategories;
         OnPropertyChanged(nameof(DisplayCategories));
     }
     if (!Interactions.DeepEqualsList(other.Interactions))
     {
         Interactions = other.Interactions;
         OnPropertyChanged(nameof(Interactions));
     }
     if (!InventoryFlyouts.DeepEqualsList(other.InventoryFlyouts))
     {
         InventoryFlyouts = other.InventoryFlyouts;
         OnPropertyChanged(nameof(InventoryFlyouts));
     }
     if (!ItemList.DeepEqualsList(other.ItemList))
     {
         ItemList = other.ItemList;
         OnPropertyChanged(nameof(ItemList));
     }
     if (!Services.DeepEqualsList(other.Services))
     {
         Services = other.Services;
         OnPropertyChanged(nameof(Services));
     }
     if (!AcceptedItems.DeepEqualsList(other.AcceptedItems))
     {
         AcceptedItems = other.AcceptedItems;
         OnPropertyChanged(nameof(AcceptedItems));
     }
     if (ReturnWithVendorRequest != other.ReturnWithVendorRequest)
     {
         ReturnWithVendorRequest = other.ReturnWithVendorRequest;
         OnPropertyChanged(nameof(ReturnWithVendorRequest));
     }
     if (!Locations.DeepEqualsList(other.Locations))
     {
         Locations = other.Locations;
         OnPropertyChanged(nameof(Locations));
     }
     if (!Groups.DeepEqualsList(other.Groups))
     {
         Groups = other.Groups;
         OnPropertyChanged(nameof(Groups));
     }
     if (!IgnoreSaleItemHashes.DeepEqualsListNaive(other.IgnoreSaleItemHashes))
     {
         IgnoreSaleItemHashes = other.IgnoreSaleItemHashes;
         OnPropertyChanged(nameof(IgnoreSaleItemHashes));
     }
     if (Hash != other.Hash)
     {
         Hash = other.Hash;
         OnPropertyChanged(nameof(Hash));
     }
     if (Index != other.Index)
     {
         Index = other.Index;
         OnPropertyChanged(nameof(Index));
     }
     if (Redacted != other.Redacted)
     {
         Redacted = other.Redacted;
         OnPropertyChanged(nameof(Redacted));
     }
 }