コード例 #1
0
        /// <summary>
        /// 真正执行搜索的方法
        /// </summary>
        /// <param name="songName"></param>
        /// <param name="pageNum"></param>
        private async void RealSearch(string songName, int pageNum)
        {
            if (_searcher == null)
            {
                IRequests req = new Requests();
                req.OnError += RequestErrorCallBack;
                _searcher    = new QqMusicMusicSearcher(req);
                _searcher.OnBeforeSearch += () => { UpdateLabelStatus("正在搜素中..."); };
                _searcher.OnAfterSearch  += () => { UpdateLabelStatus("搜素完毕!"); };
                _searcher.OnSearchError  += (exp) => { UpdateLabelStatus($"搜素出错:{exp.Message}"); };

                _parser = new QqMusicParser();
                _parser.OnBeforeParse += () => { UpdateLabelStatus("正在搜素中..."); };
                _parser.OnAfterParse  += () => { UpdateLabelStatus("解析完毕!"); };
                _parser.OnParseError  += (exp) => { UpdateLabelStatus($"解析出错:{exp.Message}"); };
            }

            var searchInfo = await _searcher.SearchAsync(songName, pageNum);

            var musicInfos = await _parser.ParseAsync(searchInfo);

            _maxPageNum              = musicInfos.Item1 % 20 == 0 ? musicInfos.Item1 / 20 : (musicInfos.Item1 / 20 + 1);
            LabelMaxPageNum.Content  = "/" + _maxPageNum.ToString();
            _songDataGridDbcontext   = musicInfos.Item2;
            SongDataGrid.DataContext = _songDataGridDbcontext;
            BtnNext.IsEnabled        = _curPageNum != _maxPageNum;
            BtnPre.IsEnabled         = _curPageNum != 1;
        }
コード例 #2
0
ファイル: MusicParserFacade.cs プロジェクト: A-K12/MusicBot
 internal void SetMusicParser(IMusicParser musicParser)
 {
     this.musicParser = musicParser;
 }
コード例 #3
0
 public MainActivity()
 {
     _scanner          = App.Container.Resolve <IMusicScanner>();
     _parser           = App.Container.Resolve <IMusicParser>();
     _musicServiceType = App.Container.Resolve <MusicServiceAbstract>().GetType();
 }