public LastFmProvider(IRestClient client) { _config = new LastFmConfig() { ApiKey = Environment.GetEnvironmentVariable("LastFmSecret") }; }
public AdminService( ILogger <AdminService> logger, LastFmConfig lastFmConfig, FileStoreConfig fileStoreConfig, PathToUrlConverterConfig pathToUrlConverterConfig, IRepository <TopItem> repository) { this.logger = logger; this.lastFmConfig = lastFmConfig; this.fileStoreConfig = fileStoreConfig; this.pathToUrlConverterConfig = pathToUrlConverterConfig; this.repository = repository; }
private static List <TopItem> GetTodayTopItems(ILogger <Program> logger, ServiceProvider serviceProvider, LastFmConfig topperLastFmConfig) { logger.LogInformation("Getting new top items from last.fm ..."); TopItemsProviderResolver serviceResolver = serviceProvider.GetService <TopItemsProviderResolver>(); List <TopItem> todayTopItems; IUrlProvider urlProvider; try { urlProvider = serviceProvider.GetService <IUrlProvider>(); } catch (Exception e) { logger.LogError(e, "Cannot use urlProvider..."); throw; } ITopItemsProvider lastFmTopArtistsProvider; try { lastFmTopArtistsProvider = serviceResolver("TOPARTIST"); } catch (Exception e) { logger.LogError(e, "Cannot use LastFmTopArtistProvider"); throw; } ITopItemsProvider lastFmLovedProvider; try { lastFmLovedProvider = serviceResolver("LOVEDTRACK"); } catch (Exception e) { logger.LogError(e, "Cannot use LastFmLovesProvider"); throw; } var topItemsAggregator = serviceProvider.GetService <ITopItemsAggregator>(); topItemsAggregator.RegisterProvider(lastFmTopArtistsProvider); topItemsAggregator.RegisterProvider(lastFmLovedProvider); try { todayTopItems = topItemsAggregator.GetItems(topperLastFmConfig.UserName); } catch (Exception e) { logger.LogError(e, "Cannot Retrieve items from at least one source."); throw; } if (!todayTopItems.Any()) { logger.LogWarning("Todays top items not retrieved."); } else { logger.LogInformation("Retrieved {0} items.", todayTopItems.Count); } return(todayTopItems); }