private async Task UpdateDatabaseMetadataAsync(FileMetadata fileMetadata, bool updateAlbumArtwork) { // Get the track from the database Track track = await this.trackRepository.GetTrackAsync(fileMetadata.SafePath); if (track == null) { return; } // Update track fields await Task.Run(() => MetadataUtils.FillTrackBase(fileMetadata, ref track)); // Update the Track in the database await this.trackRepository.UpdateTrackAsync(track); if (updateAlbumArtwork) { // Cache the new artwork string artworkID = await this.cacheService.CacheArtworkAsync(fileMetadata.ArtworkData.Value); // Add or update AlbumArtwork in the database await this.albumArtworkRepository.UpdateAlbumArtworkAsync(track.AlbumKey, artworkID); } }