public void Initialize(Pages.Album.AlbumData Data, string FilePath) { this.FilePath = FilePath; EditMode = true; InitItems(); for (int i = 0; Data.Tracks.Length > i; i++) { LAPP.IO.FileItem item = CreateItem(new LAPP.IO.MediaFile(Data.Tracks[i].Path)); items.Add(item); FileView.Items.Add(item.ListItem); if (i == Data.ArtworkIndex) { image.Source = item.File.Artwork; } } editableLabel.Text = Data.Album; }
private void SaveB_Click(object sender, RoutedEventArgs e) { Pages.Album.AlbumData data = new Pages.Album.AlbumData(); data.ShowArtwork = false; data.ArtworkIndex = -1; if (image.Source != null) { data.ArtworkIndex = aIndex; data.ShowArtwork = true; } data.Tracks = new Pages.Album.AlbumData.Track[items.Count]; for (int i = 0; items.Count > i; i++) { data.Tracks[i] = new Pages.Album.AlbumData.Track() { DiscNumber = items[i].File.DiscNumber, Path = items[i].File.Path, Title = items[i].File.Title, TrackNumber = items[i].File.Track }; if (string.IsNullOrEmpty(data.Album) && !string.IsNullOrEmpty(items[i].File.Album)) { data.Album = items[i].File.Album; } if (string.IsNullOrEmpty(data.Artist) && !string.IsNullOrEmpty(items[i].File.Artist)) { data.Artist = items[i].File.Artist; } if (items[i].File.TotalDiscNumber > 0) { data.TotalDiscs = items[i].File.TotalDiscNumber; } } System.IO.Directory.CreateDirectory(Config.Current.Path[Enums.Path.AlbumDirectory]); Random rnd = new Random(); string saveP = ""; if (string.IsNullOrEmpty(FilePath)) { string tempP = Config.Current.Path[Enums.Path.AlbumDirectory] + rnd.Next(99999).ToString().PadLeft(5, '0') + ".xml"; while (true) { if (!System.IO.File.Exists(tempP)) { saveP = tempP; break; } else { tempP = Config.Current.Path[Enums.Path.AlbumDirectory] + rnd.Next(99999).ToString().PadLeft(5, '0') + ".xml"; } } } else { saveP = FilePath; } Pages.Album.AlbumData.Write(saveP, data); Close(); }