public ActionResult Index(IndexRouteParams routeParams) { return(RedirectToAction("Index", "Search", new SearchRouteParams { searchType = EntryType.Artist, filter = routeParams.filter, sort = routeParams.sort, artistType = routeParams.artistType })); }
// // GET: /Artist/ public ActionResult Index(IndexRouteParams routeParams) { WebHelper.VerifyUserAgent(Request); var artistType = routeParams.artistType ?? ArtistType.Unknown; var filter = routeParams.filter; var page = routeParams.page; var draftsOnly = routeParams.draftsOnly; var matchMode = routeParams.matchMode ?? NameMatchMode.Auto; var sortRule = routeParams.sort ?? ArtistSortRule.Name; if (matchMode == NameMatchMode.Auto && filter != null && filter.Length <= 2) { matchMode = NameMatchMode.StartsWith; } var queryParams = new ArtistQueryParams(filter, artistType != ArtistType.Unknown ? new[] { artistType } : new ArtistType[] { }, ((page ?? 1) - 1) * 30, 30, draftsOnly ?? false, true, matchMode, sortRule, false); var result = Service.FindArtists(queryParams); if (page == null && result.TotalCount == 1 && result.Items.Length == 1) { return(RedirectToAction("Details", new { id = result.Items[0].Id })); } var model = new ArtistIndex(result, filter, artistType, draftsOnly, sortRule, page, routeParams); return(View(model)); }
// // GET: /Album/ public ActionResult Index(IndexRouteParams routeParams) { WebHelper.VerifyUserAgent(Request); var filter = routeParams.filter; var page = routeParams.page; var draftsOnly = routeParams.draftsOnly; var dType = routeParams.discType ?? DiscType.Unknown; var matchMode = routeParams.matchMode ?? NameMatchMode.Auto; var sortRule = routeParams.sort ?? AlbumSortRule.Name; var viewMode = routeParams.view ?? EntryViewMode.Details; if (matchMode == NameMatchMode.Auto && filter != null && filter.Length <= 2) { matchMode = NameMatchMode.StartsWith; } var queryParams = new AlbumQueryParams(filter, dType, ((page ?? 1) - 1) * 30, 30, draftsOnly ?? false, true, moveExactToTop: false, sortRule: sortRule, nameMatchMode: matchMode); var result = Service.Find(queryParams); if (page == null && result.TotalCount == 1 && result.Items.Length == 1) { return(RedirectToAction("Details", new { id = result.Items[0].Id })); } var model = new Index(result, filter, dType, sortRule, viewMode, page, draftsOnly, routeParams); SetSearchEntryType(EntryType.Album); return(View(model)); }
public ActionResult Index(IndexRouteParams indexParams) { return(RedirectToAction("Index", "Search", new SearchRouteParams { searchType = EntryType.Song, filter = indexParams.filter, sort = indexParams.sort, songType = indexParams.songType, onlyWithPVs = indexParams.onlyWithPVs, artistId = indexParams.artistId })); }
public FeedResult Feed(IndexRouteParams indexParams) { WebHelper.VerifyUserAgent(Request); var pageSize = (indexParams.pageSize.HasValue ? Math.Min(indexParams.pageSize.Value, 30) : 30); var sortRule = indexParams.sort ?? SongSortRule.Name; var timeFilter = DateTimeUtils.ParseFromSimpleString(indexParams.since); var filter = indexParams.filter; var songType = indexParams.songType ?? SongType.Unspecified; var draftsOnly = indexParams.draftsOnly ?? false; var matchMode = indexParams.matchMode ?? NameMatchMode.Auto; var onlyWithPVs = indexParams.onlyWithPVs ?? false; var minScore = indexParams.minScore ?? 0; var queryParams = new SongQueryParams(filter, songType != SongType.Unspecified ? new[] { songType } : new SongType[] { }, 0, pageSize, draftsOnly, false, matchMode, sortRule, false, false, null) { TimeFilter = timeFilter, OnlyWithPVs = onlyWithPVs, ArtistId = indexParams.artistId ?? 0, MinScore = minScore, }; var result = Service.FindWithThumbPreferNotNico(queryParams); var fac = new SongFeedFactory(); var feed = fac.Create(result.Items, VocaUriBuilder.CreateAbsolute(Url.Action("Index", indexParams)), song => RenderPartialViewToString("SongItem", song), song => Url.Action("Details", new { id = song.Id })); return(new FeedResult(new Atom10FeedFormatter(feed))); }
public ActionResult Index(IndexRouteParams indexParams) { WebHelper.VerifyUserAgent(Request); var pageSize = (indexParams.pageSize.HasValue ? Math.Min(indexParams.pageSize.Value, 30) : 30); var page = indexParams.page ?? 1; var sortRule = indexParams.sort ?? SongSortRule.Name; var timeFilter = DateTimeUtils.ParseFromSimpleString(indexParams.since); var filter = indexParams.filter; var songType = indexParams.songType ?? SongType.Unspecified; var draftsOnly = indexParams.draftsOnly ?? false; var matchMode = indexParams.matchMode ?? NameMatchMode.Auto; var onlyWithPVs = indexParams.onlyWithPVs ?? false; var view = indexParams.view ?? SongViewMode.Details; if (matchMode == NameMatchMode.Auto && filter != null && filter.Length <= 2) { matchMode = NameMatchMode.StartsWith; } var queryParams = new SongQueryParams(filter, songType != SongType.Unspecified ? new[] { songType } : new SongType[] { }, (page - 1) * pageSize, pageSize, draftsOnly, true, matchMode, sortRule, false, false, null) { TimeFilter = timeFilter, OnlyWithPVs = onlyWithPVs, ArtistId = indexParams.artistId ?? 0 }; var result = Service.FindWithAlbum(queryParams, view == SongViewMode.Preview); if (page == 1 && result.TotalCount == 1 && result.Items.Length == 1) { return(RedirectToAction("Details", new { id = result.Items[0].Id })); } SetSearchEntryType(EntryType.Song); var model = new Index(result, filter, matchMode, songType, indexParams.since, onlyWithPVs, sortRule, view, draftsOnly, page, pageSize, indexParams); return(View(model)); }
public async Task <FeedResult> Feed(IndexRouteParams indexParams) { WebHelper.VerifyUserAgent(Request); var pageSize = (indexParams.pageSize.HasValue ? Math.Min(indexParams.pageSize.Value, 30) : 30); var sortRule = indexParams.sort ?? SongSortRule.Name; var timeFilter = DateTimeUtils.ParseFromSimpleString(indexParams.since); var filter = indexParams.filter; var songType = indexParams.songType ?? SongType.Unspecified; var matchMode = indexParams.matchMode ?? NameMatchMode.Auto; var onlyWithPVs = indexParams.onlyWithPVs ?? false; var minScore = indexParams.minScore ?? 0; var textQuery = SearchTextQuery.Create(filter, matchMode); var queryParams = new SongQueryParams(textQuery, songType != SongType.Unspecified ? new[] { songType } : new SongType[] { }, 0, pageSize, false, sortRule, false, false, null) { ArtistParticipation = { ArtistIds = !indexParams.artistId.HasValue || indexParams.artistId.Value == 0 ? null : new [] { indexParams.artistId.Value } }, TimeFilter = timeFilter, OnlyWithPVs = onlyWithPVs, MinScore = minScore, UserCollectionId = indexParams.userCollectionId ?? 0, FollowedByUserId = indexParams.followedByUserId ?? 0 }; var result = Service.FindWithThumbPreferNotNico(queryParams); var fac = new SongFeedFactory(); var feed = await fac.CreateAsync(result.Items, VocaUriBuilder.CreateAbsolute(Url.Action("Index", indexParams)), song => RenderPartialViewToStringAsync("SongItem", song), song => Url.Action("Details", new { id = song.Id })); return(new FeedResult(new Atom10FeedFormatter(feed))); }