public void CommitChanges(ICollectionManager collectionManager) { if (this.Release.Artists.Join() != this.Release.JoinedAlbumArtists) { this.Release.Artists.Clear(); this.Release.Artists.Add(new ReleaseArtist() { Artist = collectionManager.GetOrCreateArtist(this.Release.JoinedAlbumArtists) }); } this.Release.ReleaseDate = ReleaseDate.Parse(this.textReleaseDate.Text); this.Release.OriginalReleaseDate = ReleaseDate.Parse(this.textOriginalReleaseDate.Text); int discogsRelease, discogsMaster; int.TryParse(this.textDiscogsRelease.Text, out discogsRelease); int.TryParse(this.textDiscogsMaster.Text, out discogsMaster); this.Release.DiscogsReleaseId = discogsRelease; this.Release.DiscogsMasterId = discogsMaster; this.Release.WikipediaPageName = this.textWikipediaPageName.Text; }
public void Merge() { string discogsReleaseString = release.DiscogsReleaseId == 0 ? null : release.DiscogsReleaseId.ToString(); DiscogsSelectReleaseWindow selectReleaseWindow = new DiscogsSelectReleaseWindow(discogsReleaseString); if (selectReleaseWindow.ShowDialog(this.window) == true && selectReleaseWindow.Release != null) { var discogsRelease = selectReleaseWindow.Release; DiscogsSelectImportOptions importOptionsWindow = new DiscogsSelectImportOptions(); if (importOptionsWindow.ShowDialog(this.window) == true) { if (importOptionsWindow.ImportTrackData) { if (!ImportTrackData(selectReleaseWindow)) { return; } } if (importOptionsWindow.ImportAlbumArtist) { ImportAlbumArtist(discogsRelease, importOptionsWindow); } if (importOptionsWindow.ImportImages) { ImportImages(discogsRelease); } if (importOptionsWindow.ImportReleaseDate) { this.release.ReleaseDate = ReleaseDate.Parse(discogsRelease.ReleaseDate); } if (importOptionsWindow.ImportTitle) { this.release.Title = discogsRelease.Title; } if (importOptionsWindow.ImportCatalogInformation) { this.release.Country = discogsRelease.Country; this.release.Genre = discogsRelease.Genres.FirstOrDefault(); if (discogsRelease.Labels.Length >= 1) { var discogsLabel = discogsRelease.Labels[0]; if (discogsRelease.Labels.Length > 1) { DiscogsSelectLabelWindow selectLabelWindow = new DiscogsSelectLabelWindow(discogsRelease); selectLabelWindow.Owner = this.window; if (selectLabelWindow.ShowDialog() != true) { return; } discogsLabel = selectLabelWindow.SelectedLabel; } this.release.Label = discogsLabel.Aggregate.NameFixed; this.release.CatalogNumber = discogsLabel.CatalogNumber; } } if (importOptionsWindow.ImportNotes) { this.release.Notes = discogsRelease.Notes; } this.release.DiscogsReleaseId = discogsRelease.Id; this.release.DiscogsMasterId = discogsRelease.MasterId; } } }
protected Release ReadRelease(XmlReader reader) { reader.AssertElementStart(Keys.Release); Release release = new Release(); release.JoinedAlbumArtists = reader.GetAttributeOrNull(Keys.JoinedAlbumArtists); release.Title = reader.GetAttributeOrNull(Keys.Title); release.ReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.ReleaseDate)); release.OriginalReleaseDate = ReleaseDate.Parse(reader.GetAttributeOrNull(Keys.OriginalReleaseDate)); release.CatalogNumber = reader.GetAttributeOrNull(Keys.CatalogNumber); release.Label = reader.GetAttributeOrNull(Keys.Label); release.Country = reader.GetAttributeOrNull(Keys.Country); release.FlagMessage = reader.GetAttributeOrNull(Keys.FlagMessage); release.IsFlagged = release.FlagMessage != null; release.Notes = reader.GetAttributeOrNull(Keys.Notes); release.WikipediaPageName = reader.GetAttributeOrNull(Keys.WikipediaPageName); release.DiscogsReleaseId = reader.GetAttributeInt32(Keys.DiscogsReleaseId, 0); release.DiscogsMasterId = reader.GetAttributeInt32(Keys.DiscogsMasterId, 0); release.Genre = reader.GetAttributeOrNull(Keys.Genre); release.Score = reader.GetAttributeInt32(Keys.Score, 0); release.DynamicRange = reader.GetAttributeDouble(Keys.DynamicRange, double.NaN); release.ReplayGainAlbumGain = reader.GetAttributeDouble(Keys.AlbumGain, double.NaN); release.ReplayGainAlbumPeak = reader.GetAttributeDouble(Keys.AlbumPeak, double.NaN); if (reader.GetAttributeOrNull(Keys.DateAdded) != null) { release.DateAdded = new DateTime(reader.GetAttributeInt64(Keys.DateAdded, 0)); } if (reader.GetAttributeOrNull(Keys.DateAudioModified) != null) { release.DateAudioModified = new DateTime(reader.GetAttributeInt64(Keys.DateAudioModified, 0)); } if (reader.GetAttributeOrNull(Keys.DateModified) != null) { release.DateModified = new DateTime(reader.GetAttributeInt64(Keys.DateModified, 0)); } if (reader.IsEmptyElement) { throw new FormatException(InvalidXmlDatabase); } while (reader.Read()) { if (reader.IsElementEnd(Keys.Release)) { break; } if (reader.IsElementStart(Keys.Artists)) { this.ReadArtists(reader, release); } else if (reader.IsElementStart(Keys.Tracks)) { this.ReadTracks(reader, release); } else if (reader.IsElementStart(Keys.Images)) { this.ReadImages(reader, release); } else if (reader.IsElementStart(Keys.AdditionalFiles)) { this.ReadAdditionalFiles(reader, release); } } return(release); }