Beispiel #1
0
        // GET: Musics
        public ActionResult Index(string searchMusicName,
                                  string searchArtistName,
                                  bool?success,
                                  int page = 1,
                                  MusicFieldsSort sortField = MusicFieldsSort.UpdateDate,
                                  bool sortDesc             = true)
        {
            var res = service.GetBySearch(searchMusicName,
                                          searchArtistName,
                                          new PagingRequest(page, 25),
                                          sortField,
                                          sortDesc);

            if (!res.Success)
            {
                return(Json(res.Message, JsonRequestBehavior.AllowGet));
            }
            MusicViewModel viewModel = new MusicViewModel();

            viewModel.Success        = success;
            viewModel.Musics         = res.Entities.Select(msc => new MusicViewModelEntry(msc));
            ViewBag.SearchArtistName = searchArtistName;
            ViewBag.SearchMusicName  = searchMusicName;
            ViewBag.Page             = page;
            ViewBag.TotalPages       = res.TotalPages;
            ViewBag.SortField        = sortField;
            ViewBag.SortDesc         = sortDesc;
            return(View(viewModel));
        }
Beispiel #2
0
        public ActionResult Search(string searchText, string strTagIds, int page = 1, SearchSortType sortType = SearchSortType.Relevant)
        {
            MusicSearchResult musicRes = new MusicSearchResult();

            if (!string.IsNullOrWhiteSpace(searchText) || !string.IsNullOrWhiteSpace(strTagIds))
            {
                var tagIds = strTagIds
                             .Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
                             .Select(id => Guid.Parse(id));
                PagingResponse <Music> res =
                    _mscService.GetBySearch(searchText, tagIds, new PagingRequest(page, RESULTS_IN_PAGE), sortType);

                if (res.Success)
                {
                    var user = User.GetUser();
                    ICollection <Music> favouriteMusic = new List <Music>();
                    if (user?.FavouriteMusics != null)
                    {
                        favouriteMusic = user.FavouriteMusics;
                    }
                    musicRes.TotalPages   = res.TotalPages;
                    musicRes.TotalResults = res.TotalResults;
                    musicRes.Musics       = res.Entities.Select(msc => new MusicSearchModel(msc, favouriteMusic.Any(fav => fav.ID == msc.ID)));
                }
                else
                {
                    return(new HttpStatusCodeResult(500, res.Message));
                }
            }

            return(Json(musicRes));
        }