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 网络连接失败 } }
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); }
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] }); }
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; } } }