private void OnPreviousButtonClick(object sender, RoutedEventArgs e) { DialogResult = true; Response = WarningResponse.UsePreviousSettings; this.Close(); }
private void OnDrawButtonClick(object sender, RoutedEventArgs e) { DialogResult = true; Response = WarningResponse.UseCurrentSettings; this.Close(); }
private string HandleBandMismatch(string userInput, string metaData, string fileName) { string band = userInput; if (_warningResponse.HasFlag(WarningResponse.Artist_Meta)) { band = metaData; } else if (!_warningResponse.HasFlag(WarningResponse.Artist_User)) { _warning.Message = string.Format("The selected artist ({0}) does not match the artist name in the metadata ({1}) for the following track:\n{2}", userInput, metaData, fileName); _warning.Deactivated += warning_Deactivated; _eventAggregator.PublishOnUIThread("warning"); _stopper.WaitOne(); switch (_warning.Feedback) { case WarningFeedback.Abort: //TODO: Figure out a way (an efficient one) to roleback stuff already copied/moved return("-1"); case WarningFeedback.UseMetadata: band = metaData; break; case WarningFeedback.UseMetadata | WarningFeedback.ApplyToAll: band = metaData; if (_warningResponse == WarningResponse.None) { _warningResponse = WarningResponse.Artist_Meta; } else { _warningResponse |= WarningResponse.Artist_Meta; } break; case WarningFeedback.UseUserInput: band = userInput; break; case WarningFeedback.UseUserInput | WarningFeedback.ApplyToAll: band = userInput; if (_warningResponse == WarningResponse.None) { _warningResponse = WarningResponse.Artist_User; } else { _warningResponse |= WarningResponse.Artist_User; } break; } } return(band); }
private void ImportSingleAlbum() { var repoDir = Global.AppParameters.FirstOrDefault(x => x.Name == "MusicRepo").Value; _warningResponse = WarningResponse.None; foreach (var f in Files) { var band = _selectedBand.Name; var album = _selectedAlbum.Name; var genre = _selectedAlbum.Genre.Name; var tags = TagLib.File.Create(f.FullName); var duration = tags.Properties.Duration != null ? tags.Properties.Duration.Seconds : 0; var trackNr = tags.Tag.Track != null ? tags.Tag.Track : 0; if (tags.Tag.Album != _selectedAlbum.Name) { album = HandleAlbumMismatch(_selectedAlbum.Name, tags.Tag.Album, f.Name); } if (tags.Tag.FirstAlbumArtist != band) { band = HandleBandMismatch(_selectedBand.Name, tags.Tag.FirstAlbumArtist != null ? tags.Tag.FirstAlbumArtist : (tags.Tag.FirstArtist != null ? tags.Tag.FirstArtist : "Unknown"), f.Name); } var copyToDir = string.Format("{0}\\{1}\\{2}", repoDir, band, album); if (!System.IO.Directory.Exists(copyToDir)) { System.IO.Directory.CreateDirectory(copyToDir); } var fullDir = string.Format("{0}\\{1}", copyToDir, f.Name); if (!System.IO.File.Exists(fullDir)) { if (MoveFiles) { f.MoveTo(fullDir); } else { f.CopyTo(fullDir); } Info = string.Format("Imported {0} - {1} - {2}", band, album, f.Name); } else { Info = string.Format("Skipped {0} - {1} - {2} -> Track already imported", band, album, f.Name); } AddTrackToDB(band, album, genre, f.Name, fullDir, duration, (int)trackNr); } LoadBands(); Info = "Import complete"; }