+ internal void ApplyExternalTheme(IExternalTheme externalTheme, HashSet<ExternalThemeKeyList> keyListSet)
+ {
+ Id = externalTheme.Id;
+ Version = externalTheme.Version;
+
+ if (keyListSet == null)
+ {
+ // Nothing to apply
+ return;
+ }
+
+ foreach (var keyList in keyListSet)
+ {
+ keyList?.ApplyKeyActions(externalTheme, this);
+ }
+ }
+
+ internal bool HasSameIdAndVersion(IExternalTheme externalTheme)
+ {
+ if (externalTheme == null)
+ {
+ return false;
+ }
+
+ return string.Equals(Id, externalTheme.Id, StringComparison.OrdinalIgnoreCase) && string.Equals(Version, externalTheme.Version, StringComparison.OrdinalIgnoreCase);
+ }
+