示例#1
0
        public ActionResult FavoriteSongsPaged(int id, int? page, SongVoteRating? rating = null, SongSortRule sort = SongSortRule.Name, bool groupByRating = true)
        {
            const int songsPerPage = 50;

            var pageIndex = (page - 1) ?? 0;
            var r = rating ?? SongVoteRating.Nothing;
            var queryParams = new RatedSongQueryParams(id, PagingProperties.CreateFromPage(pageIndex, songsPerPage, true)) { FilterByRating = r, SortRule = sort, GroupByRating = groupByRating };
            var result = Service.GetFavoriteSongs(queryParams);
            var data = new PagingData<FavoriteSongForUserContract>(result.Items.ToPagedList(pageIndex, songsPerPage, result.TotalCount), id, "FavoriteSongs", "ui-tabs-3");
            data.RouteValues = new RouteValueDictionary(new { action = "FavoriteSongs", id, rating, sort, groupByRating });

            return PartialView("FavoriteSongsPaged", data);
        }
示例#2
0
        public PartialFindResult<RatedSongForUserForApiContract> GetRatedSongs(
            int userId,
            string query = "",
            string tag = null,
            int? artistId = null,
            bool childVoicebanks = false,
            SongVoteRating? rating = null,
            int? songListId = null,
            bool groupByRating = true,
            int start = 0, int maxResults = defaultMax, bool getTotalCount = false,
            SongSortRule? sort = null,
            NameMatchMode nameMatchMode = NameMatchMode.Auto,
            SongOptionalFields fields = SongOptionalFields.None,
            ContentLanguagePreference lang = ContentLanguagePreference.Default)
        {
            maxResults = Math.Min(maxResults, absoluteMax);
            query = FindHelpers.GetMatchModeAndQueryForSearch(query, ref nameMatchMode);

            var queryParams = new RatedSongQueryParams(userId, new PagingProperties(start, maxResults, getTotalCount)) {
                Query = query,
                NameMatchMode = nameMatchMode,
                SortRule = sort ?? SongSortRule.Name,
                ArtistId = artistId ?? 0,
                ChildVoicebanks = childVoicebanks,
                FilterByRating = rating ?? SongVoteRating.Nothing,
                GroupByRating = groupByRating,
                SonglistId = songListId ?? 0,
                Tag = tag
            };

            var songs = queries.GetRatedSongs(queryParams, ratedSong => new RatedSongForUserForApiContract(ratedSong, lang, fields));
            return songs;
        }