/// <summary> /// Loads all <see cref="HomeEditorRegistration"/>s and gets a collection of supported skins. /// </summary> /// <returns>A collection of supported skin names.</returns> protected HashSet <string> GetSupportedSkins() { HashSet <string> registrations = new HashSet <string>(); IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>(); foreach (PluginItemMetadata itemMetadata in pluginManager.GetAllPluginItemMetadata(HomeEditorRegistrationBuilder.HOME_EDITOR_PROVIDER_PATH)) { HomeEditorRegistration registration = GetSkinRegistration(itemMetadata, pluginManager); if (registration != null) { registrations.Add(registration.SkinName); } } return(registrations); }
/// <summary> /// Loads a <see cref="HomeEditorRegistration"/> for the specified <paramref name="itemMetadata"/>. /// </summary> /// <param name="itemMetadata"></param> /// <param name="pluginManager"></param> /// <returns></returns> protected HomeEditorRegistration GetSkinRegistration(PluginItemMetadata itemMetadata, IPluginManager pluginManager) { try { HomeEditorRegistration providerRegistration = pluginManager.RequestPluginItem <HomeEditorRegistration>( HomeEditorRegistrationBuilder.HOME_EDITOR_PROVIDER_PATH, itemMetadata.Id, _pluginItemStateTracker); if (providerRegistration != null) { ServiceRegistration.Get <ILogger>().Info("Successfully added Home Editor skin registration for skin '{0}' (Id '{1}')", itemMetadata.Attributes["SkinName"], itemMetadata.Id); return(providerRegistration); } ServiceRegistration.Get <ILogger>().Warn("Could not instantiate Home Editor skin registration with id '{0}'", itemMetadata.Id); } catch (PluginInvalidStateException e) { ServiceRegistration.Get <ILogger>().Warn("Cannot add Home Editor skin registration with id '{0}'", e, itemMetadata.Id); } return(null); }