Exemplo n.º 1
0
        public async void Confirm()
        {
            string ResultID = null;

            if (SelectIndex >= 0)
            {
                if (bCheckArtist && SearchInfo.Artists.Count > 0)
                {
                    ResultID   = SearchInfo.Artists[SelectIndex].ID.ToString();
                    ResultType = eObjectType.ARTIST;
                }
                if (bCheckAlbum && SearchInfo.Albums.Count > 0)
                {
                    ResultID   = SearchInfo.Albums[SelectIndex].ID.ToString();
                    ResultType = eObjectType.ALBUM;
                }
                if (bCheckTrack && SearchInfo.Tracks.Count > 0)
                {
                    ResultID   = SearchInfo.Tracks[SelectIndex].ID.ToString();
                    ResultType = eObjectType.TRACK;
                }
                if (bCheckVideo && SearchInfo.Videos.Count > 0)
                {
                    ResultID   = SearchInfo.Videos[SelectIndex].ID.ToString();
                    ResultType = eObjectType.VIDEO;
                }

                ShowWait = Visibility.Visible;
                await Task.Run(() =>
                {
                    ResultObject = TidalTool.tryGet(ResultID, out ResultType, ResultType);
                });
            }
            RequestClose();
        }
Exemplo n.º 2
0
        public async void Search(string SearchStr)
        {
            ShowCoverFlow = Visibility.Hidden;
            if (SearchStr.IsBlank())
            {
                Growl.Error("Search string is empty!", "SearchMsg");
                return;
            }

            //Search
            ShowWait();
            object SearchObj = await Task.Run(() => { return(TidalTool.tryGet(SearchStr, out SearchType)); });

            if (SearchType == eObjectType.None)
            {
                Growl.Error("Search Err!", "SearchMsg");
            }
            else if (SearchType == Tidal.eObjectType.SEARCH)
            {
                SearchResult   = ((Tidal.SearchResult)SearchObj);
                ShowDetailView = Visibility.Hidden;
            }
            else
            {
                LoadDetail(SearchObj);
                ShowDetailView = Visibility.Visible;
            }
            ShowWait(false);
        }
Exemplo n.º 3
0
        public void ThreadFunc(object[] data)
        {
            while (true)
            {
                for (int i = 0; i < Items.Count; i++)
                {
                    if (Items[i].Status != "Wait")
                    {
                        continue;
                    }
                    Items[i].Status = "Parse";

                    //Get
                    eObjectType eType;
                    object      Data = TidalTool.tryGet(Items[i].Name, out eType, Items[i].Type);

                    //Result
                    if (eType == eObjectType.None || Data == null)
                    {
                        Items[i].Status = "Err";
                    }
                    else
                    {
                        Items[i].Type   = eType;
                        Items[i].Data   = Data;
                        Items[i].Status = "Success";
                    }
                }
                Thread.Sleep(3000);
            }
        }
        public async void Search()
        {
            if (InSearch)
            {
                return;
            }
            if (SearchStr.IsBlank())
            {
                Errlabel = "Search String is Empty!";
                return;
            }

            //Search
            InSearch = true;
            eObjectType SearchType = eObjectType.None;
            object      SearchObj  = await Task.Run(() => { return(TidalTool.tryGet(SearchStr, out SearchType)); });

            InSearch = false;

            if (SearchType == eObjectType.None)
            {
                Errlabel = "Search Err!";
                return;
            }
            if (SearchType == Tidal.eObjectType.SEARCH)
            {
                VMSearch.Load((Tidal.SearchResult)SearchObj);
                Manager.ShowDialog(VMSearch);
                SearchType = VMSearch.ResultType;
                SearchObj  = VMSearch.ResultObject;
                if (SearchType == eObjectType.None)
                {
                    return;
                }
            }

            SearchObj = VMInfo.Load(SearchObj);
            Manager.ShowDialog(VMInfo);
            if (VMInfo.Result)
            {
                MainListItemViewModel newNode = new MainListItemViewModel(SearchObj, ItemList);
                ItemList.Add(newNode);
                newNode.StartWork();
            }
        }
Exemplo n.º 5
0
        public async void GetDetail()
        {
            if (SearchResult == null)
            {
                Growl.Error("Please search first!", "SearchMsg");
                return;
            }

            ShowWait();
            string      sID     = null;
            object      oObject = null;
            eObjectType oType   = eObjectType.None;
            eObjectType inType  = eObjectType.None;

            string selectHeader = ((System.Windows.Controls.TabItem)((SearchView)this.View).ctrSearchTab.SelectedItem).Header.ToString();

            if (selectHeader == "ALBUM")
            {
                if (((SearchView)this.View).ctrAlbumGrid.SelectedIndex < 0)
                {
                    goto ERR_NO_SELECT;
                }
                sID    = SearchResult.Albums[((SearchView)this.View).ctrAlbumGrid.SelectedIndex].ID.ToString();
                inType = eObjectType.ALBUM;
            }
            else if (selectHeader == "TRACK")
            {
                if (((SearchView)this.View).ctrTrackGrid.SelectedIndex < 0)
                {
                    goto ERR_NO_SELECT;
                }
                sID    = SearchResult.Tracks[((SearchView)this.View).ctrTrackGrid.SelectedIndex].ID.ToString();
                inType = eObjectType.TRACK;
            }
            else if (selectHeader == "VIDEO")
            {
                if (((SearchView)this.View).ctrVideoGrid.SelectedIndex < 0)
                {
                    goto ERR_NO_SELECT;
                }
                sID    = SearchResult.Videos[((SearchView)this.View).ctrVideoGrid.SelectedIndex].ID.ToString();
                inType = eObjectType.VIDEO;
            }
            else if (selectHeader == "ARTIST")
            {
                if (((SearchView)this.View).ctrArtistGrid.SelectedIndex < 0)
                {
                    goto ERR_NO_SELECT;
                }
                sID    = SearchResult.Artists[((SearchView)this.View).ctrArtistGrid.SelectedIndex].ID.ToString();
                inType = eObjectType.ARTIST;
            }
            else if (selectHeader == "PLAYLIST")
            {
                if (((SearchView)this.View).ctrPlaylistGrid.SelectedIndex < 0)
                {
                    goto ERR_NO_SELECT;
                }
                sID    = SearchResult.Playlists[((SearchView)this.View).ctrPlaylistGrid.SelectedIndex].UUID;
                inType = eObjectType.PLAYLIST;
            }

            oObject = await Task.Run(() => { return(TidalTool.tryGet(sID, out oType, inType)); });

            LoadDetail(oObject);
            ShowDetailView = Visibility.Visible;

            ShowWait(false);
            return;

ERR_NO_SELECT:
            Growl.Error("Please select one item!", "SearchMsg");
            ShowWait(false);
            return;
        }