示例#1
0
        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;
        }
示例#2
0
        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();
        }