Exemplo n.º 1
0
        public void LoadDetail(object data)
        {
            if (data == null)
            {
                return;
            }

            Detail      = new DetailRecord();
            Detail.Data = data;
            if (data.GetType() == typeof(Album))
            {
                Album album = (Album)data;
                Detail.Header      = "ALBUMINFO";
                Detail.Title       = album.Title;
                Detail.Intro       = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos);
                Detail.Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData);
                Detail.ReleaseDate = "Release date " + album.ReleaseDate;
                Detail.ItemList    = new ObservableCollection <DetailRecord.Item>();
                if (album.Tracks != null)
                {
                    foreach (Track item in album.Tracks)
                    {
                        item.WaitDownload = true;
                        Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item)));
                    }
                }
                if (album.Videos != null)
                {
                    foreach (Video item in album.Videos)
                    {
                        item.WaitDownload = true;
                        Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, "VIDEO", flag: TidalTool.getFlag(item)));
                    }
                }

                //FlagDetail
                if (album.AudioQuality == "HI_RES")
                {
                    Detail.FlagDetail += "Master ";
                }
                if (album.Explicit)
                {
                    Detail.FlagDetail += "Explicit";
                }

                //Modes
                if (album.AudioModes != null && album.AudioModes.Length > 0)
                {
                    foreach (var item in album.AudioModes)
                    {
                        Detail.Modes += item + " ";
                    }
                }
            }
            else if (data.GetType() == typeof(Video))
            {
                Video video = (Video)data;
                video.WaitDownload = true;
                Detail.Header      = "VIDEOINFO";
                Detail.Title       = video.Title;
                Detail.Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData);
                Detail.Intro       = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration));
                Detail.ReleaseDate = "Release date " + video.ReleaseDate;
                Detail.ItemList    = new ObservableCollection <DetailRecord.Item>();
                Detail.ItemList.Add(new DetailRecord.Item(video.Title, TimeHelper.ConverIntToString(video.Duration), video.Album == null ? "" : video.Album.Title, data, "VIDEO"));

                if (video.Explicit)
                {
                    Detail.FlagDetail += "Explicit";
                }
                //Detail.Modes += video.Quality;
            }
            else if (data.GetType() == typeof(Artist))
            {
                Artist artist = (Artist)data;
                Detail.Header      = "ARTISTINFO";
                Detail.Title       = artist.Name;
                Detail.Intro       = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count);
                Detail.Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData);
                Detail.ReleaseDate = "";
                Detail.ItemList    = new ObservableCollection <DetailRecord.Item>();
                if (artist.Albums != null)
                {
                    foreach (Album item in artist.Albums)
                    {
                        item.WaitDownload = true;
                        Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "ALBUM", flag: TidalTool.getFlag(item)));
                    }
                }
            }
            else if (data.GetType() == typeof(Playlist))
            {
                Playlist plist = (Playlist)data;
                Detail.Header      = "PLAYLISTINFO";
                Detail.Title       = plist.Title;
                Detail.Intro       = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos);
                Detail.Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData);
                Detail.ReleaseDate = "";
                Detail.ItemList    = new ObservableCollection <DetailRecord.Item>();
                if (plist.Tracks != null)
                {
                    foreach (Track item in plist.Tracks)
                    {
                        item.WaitDownload = true;
                        Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item)));
                    }
                }
                if (plist.Videos != null)
                {
                    foreach (Video item in plist.Videos)
                    {
                        item.WaitDownload = true;
                        Detail.ItemList.Add(new DetailRecord.Item(item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "VIDEO"));
                    }
                }
            }
        }
        public object Load(object data)
        {
            AllCheck   = true;
            Data       = data;
            FlagDetail = "";
            Modes      = "";
            if (data.GetType() == typeof(Playlist))
            {
                Playlist plist = (Playlist)data;
                Header = "PLAYLISTINFO";
                Title  = plist.Title;
                //Intro          = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", plist.Created, TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos);
                Intro       = string.Format("{0} Tracks-{1} Videos-{2}", TimeHelper.ConverIntToString(plist.Duration), plist.NumberOfTracks, plist.NumberOfVideos);
                Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(plist.CoverData);
                ReleaseDate = "";
                ItemList    = new ObservableCollection <InfoItem>();
                if (plist.Tracks != null)
                {
                    foreach (Track item in plist.Tracks)
                    {
                        ItemList.Add(new InfoItem(plist.Tracks.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item)));
                    }
                }
                if (plist.Videos != null)
                {
                    foreach (Video item in plist.Videos)
                    {
                        ItemList.Add(new InfoItem(plist.Tracks.Count + plist.Videos.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "VIDEO"));
                    }
                }
            }
            else if (data.GetType() == typeof(Artist))
            {
                Artist artist = (Artist)data;
                Header      = "ARTISTINFO";
                Title       = artist.Name;
                Intro       = string.Format("by {0} Albums-{1}", artist.Name, artist.Albums.Count);
                Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(artist.CoverData);
                ReleaseDate = "";
                ItemList    = new ObservableCollection <InfoItem>();
                if (artist.Albums != null)
                {
                    foreach (Album item in artist.Albums)
                    {
                        ItemList.Add(new InfoItem(artist.Albums.IndexOf(item) + 1, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Title, item, "ALBUM", flag: TidalTool.getFlag(item)));
                    }
                }
            }
            else if (data.GetType() == typeof(Album))
            {
                Album album = (Album)data;
                Header      = "ALBUMINFO";
                Title       = album.Title;
                Intro       = string.Format("by {0}-{1} Tracks-{2} Videos-{3}", album.Artist.Name, TimeHelper.ConverIntToString(album.Duration), album.NumberOfTracks, album.NumberOfVideos);
                Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(album.CoverData);
                ReleaseDate = "Release date " + album.ReleaseDate;
                ItemList    = new ObservableCollection <InfoItem>();
                if (album.Tracks != null)
                {
                    foreach (Track item in album.Tracks)
                    {
                        ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, flag: TidalTool.getFlag(item)));
                    }
                }
                if (album.Videos != null)
                {
                    foreach (Video item in album.Videos)
                    {
                        ItemList.Add(new InfoItem(item.TrackNumber, item.Title, TimeHelper.ConverIntToString(item.Duration), item.Album.Title, item, "VIDEO"));
                    }
                }

                //FlagDetail
                if (album.AudioQuality == "HI_RES")
                {
                    FlagDetail += "Master ";
                }
                if (album.Explicit)
                {
                    FlagDetail += "Explicit";
                }

                //Modes
                if (album.AudioModes != null && album.AudioModes.Count() > 0)
                {
                    foreach (var item in album.AudioModes)
                    {
                        Modes += item + " ";
                    }
                }
            }
            else if (data.GetType() == typeof(Video))
            {
                Video video = (Video)data;
                Header      = "VIDEOINFO";
                Title       = video.Title;
                Cover       = AIGS.Common.Convert.ConverByteArrayToBitmapImage(video.CoverData);
                Intro       = string.Format("by {0}-{1}", video.Artist.Name, TimeHelper.ConverIntToString(video.Duration));
                ReleaseDate = "Release date " + video.ReleaseDate;
                ItemList    = new ObservableCollection <InfoItem>();
                ItemList.Add(new InfoItem(0, video.Title, TimeHelper.ConverIntToString(video.Duration), video.Album == null ? "" : video.Album.Title, data, "VIDEO"));
            }
            return(data);
        }
 public void Load(SearchResult SearchInfo)
 {
     ShowWait        = Visibility.Hidden;
     PlayList        = new List <SearchItem>();
     ArtistList      = new List <SearchItem>();
     AlbumList       = new List <SearchItem>();
     TrackList       = new List <SearchItem>();
     VideoList       = new List <SearchItem>();
     this.SearchInfo = SearchInfo;
     foreach (Playlist item in SearchInfo.Playlists)
     {
         PlayList.Add(new SearchItem(SearchInfo.Playlists.IndexOf(item) + 1, item.Title, item.Title, TimeHelper.ConverIntToString(item.Duration), TidalTool.getFlag(item)));
     }
     foreach (Artist item in SearchInfo.Artists)
     {
         ArtistList.Add(new SearchItem(SearchInfo.Artists.IndexOf(item) + 1, item.Name, item.Name, ""));
     }
     foreach (Album item in SearchInfo.Albums)
     {
         AlbumList.Add(new SearchItem(SearchInfo.Albums.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration), TidalTool.getFlag(item)));
     }
     foreach (Track item in SearchInfo.Tracks)
     {
         TrackList.Add(new SearchItem(SearchInfo.Tracks.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration), TidalTool.getFlag(item)));
     }
     foreach (Video item in SearchInfo.Videos)
     {
         VideoList.Add(new SearchItem(SearchInfo.Videos.IndexOf(item) + 1, item.Title, item.Artists[0].Name, TimeHelper.ConverIntToString(item.Duration), TidalTool.getFlag(item)));
     }
 }