public void InitProviders() { lock (_syncObj) { if (_providerList != null) { return; } var providerList = new List <SortedGenreConverter>(); _genreProviderPluginItemStateTracker = new FixedItemStateTracker("GenreConverter Service - Provider registration"); IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>(); foreach (PluginItemMetadata itemMetadata in pluginManager.GetAllPluginItemMetadata(GenreProviderBuilder.GENRE_PROVIDER_PATH)) { try { GenreProviderRegistration genreProviderRegistration = pluginManager.RequestPluginItem <GenreProviderRegistration>(GenreProviderBuilder.GENRE_PROVIDER_PATH, itemMetadata.Id, _genreProviderPluginItemStateTracker); if (genreProviderRegistration == null || genreProviderRegistration.ProviderClass == null) { ServiceRegistration.Get <ILogger>().Warn("Could not instantiate IGenreProvider with id '{0}'", itemMetadata.Id); } else { IGenreProvider provider = Activator.CreateInstance(genreProviderRegistration.ProviderClass) as IGenreProvider; if (provider == null) { throw new PluginInvalidStateException("Could not create IGenreProvider instance of class {0}", genreProviderRegistration.ProviderClass); } providerList.Add(new SortedGenreConverter { Priority = genreProviderRegistration.Priority, Provider = provider }); } } catch (PluginInvalidStateException e) { ServiceRegistration.Get <ILogger>().Warn("Cannot add IGenreProvider with id '{0}'", e, itemMetadata.Id); } } providerList.Sort((p1, p2) => p1.Priority.CompareTo(p2.Priority)); _providerList = providerList; } }
private void TestGenre(string genreName, string genreCategory, int expectedGenreId) { //Act int genreId = 0; bool result = false; IGenreProvider lastUsedProvider = null; foreach (IGenreProvider provider in _providers) { // We know that not all providers can support all formats, so we allow all to be tried. lastUsedProvider = provider; result = provider.GetGenreId(genreName, genreCategory, "en", out genreId); if (result) { break; } } //Assert Assert.AreEqual(true, result, $"{lastUsedProvider?.GetType().Name}: Genre detection failed for genre ({genreName}, {genreCategory})"); Assert.AreEqual(genreId, expectedGenreId, $"{lastUsedProvider?.GetType().Name}: Genre detection success, but genre was wrong ({genreName}, {genreCategory}, {genreId}, {expectedGenreId})"); }
public BooksController(IBookProvider bookProvider, IGenreProvider genreProvider) { _bookProvider = bookProvider; _genreProvider = genreProvider; }
public StoreManagerController(IAlbumProvider albumProvider, IGenreProvider genreProvider) { _albumProvider = albumProvider; _genreProvider = genreProvider; }
public GenresController(IGenreProvider provider) { _genreProvider = provider; }