Exemplo n.º 1
0
        private async Task SearchAllResultAsync()
        {
            var netWorkDataResult = await this._netWorkServices.GetAsync <SearchResultModel>("Search", "Search", new { keyWord = KeyWord, Global.Enums.SearchResultType.All, limit = Settings.Default.LimitPerPage });

            if (netWorkDataResult.Successed)
            {
                var temp = netWorkDataResult.Data;
                this._tabKeyAndTotal["1"] = temp.Musics.Key;
                this._tabKeyAndTotal["2"] = temp.Artists.Key;
                this._tabKeyAndTotal["3"] = temp.Albums.Key;
                this._tabKeyAndTotal["4"] = temp.Mvs.Key;
                this._tabKeyAndTotal["5"] = temp.PlayLists.Key;
                this._tabKeyAndTotal["6"] = temp.Radios.Key;
                this._tabKeyAndTotal["7"] = temp.Users.Key;

                await Task.WhenAll(MusicResults.AddRangeAsync(temp.Musics.Value),
                                   ArtistResults.AddRangeAsync(temp.Artists.Value),
                                   AlbumResults.AddRangeAsync(temp.Albums.Value),
                                   MvResults.AddRangeAsync(temp.Mvs.Value),
                                   UserResults.AddRangeAsync(temp.Users.Value),
                                   PlayListResults.AddRangeAsync(temp.PlayLists.Value));

                this._tabKeyAndOffset["1"] = 0;
                this._tabKeyAndOffset["2"] = 0;
                this._tabKeyAndOffset["3"] = 0;
                this._tabKeyAndOffset["4"] = 0;
                this._tabKeyAndOffset["5"] = 0;
                this._tabKeyAndOffset["6"] = 0;
                this._tabKeyAndOffset["7"] = 0;
            }
            else
            {
                //todo 网络连接失败
            }
        }
Exemplo n.º 2
0
        public void ParsesArtistResults(string filePath, string ArtistID)
        {
            var json = TestHelper.GetFileData(filePath);

            var sut = new DeserializeJson <ArtistResults>();

            ArtistResults artists = sut.Deserialize(json);

            Assert.Equal(28, artists.Count);
            Assert.Equal(25, artists.Artists.Length);
            Assert.Equal(ArtistID, artists.Artists[1].ID);
            Assert.Equal("92a4d187-168d-4422-8d04-d194bea5da47", artists.Artists[0].ID);
            Assert.Equal("92a4d187-168d-4422-8d04-d194bea5da47", artists.Artists[0].ID);
        }
Exemplo n.º 3
0
        public static IEnumerable <object[]> GetTracksAsyncTestParams()
        {
            string artistName  = "Tupac shakur";
            var    mockService = new Mock <IMusicStatService>();
            var    realService = new MusicStatService();
            Func <object, string> getReleasesFileData = (object path) =>
            {
                return(TestHelper.GetFileData((string)path));
            };
            Func <object, string> getTracksData = (object releaseID) =>
            {
                Task <string> tracksTask = realService.getTracks((string)releaseID);
                tracksTask.Wait();
                return(tracksTask.Result);
            };
            Func <object, object, Task <string> > getTracksLyrics = (object artistName, object trackTitle) =>
            {
                return(realService.getLyrics((string)artistName, (string)trackTitle));
            };

            mockService.Setup(mss => mss.getArtists(artistName))
            .Returns(Task <string> .Factory.StartNew(getReleasesFileData, "data/artists-query-2pac.json"));
            mockService.Setup(mss => mss.getReleases("92a4d187-168d-4422-8d04-d194bea5da47"))
            .Returns(Task <string> .Factory.StartNew(getReleasesFileData, "data/releases-artist-tupac-shakur.json"));
            mockService.Setup(mss => mss.getReleases("382f1005-e9ab-4684-afd4-0bdae4ee37f2"))
            .Returns(Task <string> .Factory.StartNew(getReleasesFileData, "data/releases-artist-2pac.json"));

            mockService.Setup((mss) => mss.getTracks(It.IsAny <string>()))
            .Returns <string>((s) => Task <string> .Factory.StartNew(getTracksData, s));
            mockService.Setup((mss) => mss.getLyrics(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>(async(artistName, trackTitle) => await await Task.Factory.StartNew(() => getTracksLyrics(artistName, trackTitle)));
            var           mock = mockService.Object;
            Task <string> artistsResultsTask = mock.getArtists(artistName);

            artistsResultsTask.Wait();
            string artistsResultsJson = artistsResultsTask.Result;
            DeserializeJson <ArtistResults> deserializeJson = new DeserializeJson <ArtistResults>();
            ArtistResults artistResults = deserializeJson.Deserialize(artistsResultsJson);
            var           real          = new MusicStatService();

            yield return(new object[] { mock, artistResults.Artists[1] });
        }
Exemplo n.º 4
0
        private async void SearchResultNextPageCommandExecute(string tabKey)
        {
            if (this._tabKeyAndOffset.ContainsKey(tabKey))
            {
                this._nextPageCancel?.Cancel();
                var newCancel = new CancellationTokenSource();
                this._nextPageCancel = newCancel;
                if (Settings.Default.LimitPerPage * (_tabKeyAndOffset[tabKey] + 1) < _tabKeyAndTotal[tabKey])
                {
                    try
                    {
                        var netWorkDataResult = await this._netWorkServices.GetAsync <SearchResultModel>("Search", "Search",
                                                                                                         new
                        {
                            KeyWord,
                            SearchResultType = this._tabKeyAndType[tabKey],
                            limit            = Settings.Default.LimitPerPage,
                            offset           = ++this._tabKeyAndOffset[tabKey]
                        });

                        if (!netWorkDataResult.Successed)
                        {
                            //todo 网络连接失败
                            throw new OperationCanceledException();
                        }
                        var temp = netWorkDataResult.Data;
                        switch (_tabKeyAndType[tabKey])
                        {
                        case Global.Enums.SearchResultType.Music:
                            this.MusicResults.AddRange(temp.Musics.Value);
                            break;

                        case Global.Enums.SearchResultType.Artist:
                            ArtistResults.AddRange(temp.Artists.Value);
                            break;

                        case Global.Enums.SearchResultType.Album:
                            AlbumResults.AddRange(temp.Albums.Value);
                            break;

                        case Global.Enums.SearchResultType.PlayList:
                            PlayListResults.AddRange(temp.PlayLists.Value);
                            break;

                        case Global.Enums.SearchResultType.User:
                            UserResults.AddRange(temp.Users.Value);
                            break;

                        case Global.Enums.SearchResultType.MV:
                            MvResults.AddRange(temp.Mvs.Value);
                            break;

                        case Global.Enums.SearchResultType.Radio:

                            break;

                        default:
                            break;
                        }
                    }
                    catch (OperationCanceledException)
                    {
                    }
                }

                if (newCancel == this._nextPageCancel)
                {
                    this._nextPageCancel = null;
                }
            }
        }