예제 #1
0
        public async Task Execute()
        {
            var updates = await _deezerApiService.GetDeezerApi().Genre.GetNewReleasesForGenre(0, CancellationToken.None, 0, 200);

            if (updates != null)
            {
                var updatesList  = updates.ToList();
                var latestAlbum  = updatesList.FirstOrDefault();
                var lastChangeId = await _configurationService.Get <ulong>("LastChangeId");

                if (latestAlbum != null)
                {
                    if (latestAlbum.Id != lastChangeId)
                    {
                        foreach (var album in updatesList)
                        {
                            if (latestAlbum.Id == lastChangeId)
                            {
                                break;
                            }

                            var dbArtist = await _dataRepository.GetArtist(album.Artist.Id);

                            if (dbArtist != null)
                            {
                                _deemixService.Download($"https://www.deezer.com/en/album/{album.Id}", dbArtist.Folder);
                            }
                        }
                    }

                    await _configurationService.Set("LastChangeId", latestAlbum.Id);
                }
            }
        }
        public async Task Execute(PerformContext context)
        {
            var overallProgressbar = context.WriteProgressBar();
            var updates            = await _deezerApiService.GetDeezerApi().Genre.GetNewReleasesForGenre(0, CancellationToken.None, 0, 200);

            if (updates != null)
            {
                var updatesList  = updates.ToList();
                var latestAlbum  = updatesList.FirstOrDefault();
                var lastChangeId = await _configurationService.Get <ulong>("LastChangeId");

                if (latestAlbum != null)
                {
                    if (latestAlbum.Id != lastChangeId)
                    {
                        foreach (var album in updatesList.WithProgress(overallProgressbar))
                        {
                            if (latestAlbum.Id == lastChangeId)
                            {
                                break;
                            }

                            var dbArtist = await _dataRepository.GetArtist(album.Artist.Id);

                            if (dbArtist != null)
                            {
                                _deemixService.Download($"https://www.deezer.com/en/album/{album.Id}", dbArtist.Folder);

                                dbArtist.Updated = DateTime.UtcNow;

                                await _dataRepository.UpdateArtist(dbArtist);
                            }
                        }
                    }

                    await _configurationService.Set("LastChangeId", latestAlbum.Id);
                }
            }
        }