public LastFmProvider(IRestClient client)
 {
     _config = new LastFmConfig()
     {
         ApiKey = Environment.GetEnvironmentVariable("LastFmSecret")
     };
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
        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);
        }