public PageResult Search(MusicRequestType type, string key, int page, int size = 20) { PageResult result = null; var keys = GlobalHelper.ToSeparateByJieba(key); switch (type) { case MusicRequestType.Song: result = SearchSong(keys, page, size); break; case MusicRequestType.Album: result = SearchAlbum(keys, page, size); break; case MusicRequestType.PlayList: break; case MusicRequestType.MV: break; case MusicRequestType.Lyric: break; case MusicRequestType.Singer: result = SearchSinger(keys, page, size); break; case MusicRequestType.User: break; } return(result); }
/// <summary> /// 获取某一页的歌曲类型搜索结果 /// </summary> /// <param name="type"></param> /// <param name="searchKey"></param> /// <param name="currentPageNumber"></param> /// <param name="size"></param> /// <returns></returns> private PageResult GetJMusicInfoOfPageModel(MusicRequestType type, string searchKey, int currentPageNumber, int size) { ISearchService musicSearchService = new SearchService(); var result = musicSearchService.Search(type, searchKey, currentPageNumber, size); return(result); }
/// <summary> /// 添加UserLike /// </summary> /// <param name="userId"></param> /// <param name="objId"></param> /// <param name="type"></param> public void Create(int userId, int objId, MusicRequestType type) { var user = _userManager.Find(userId); if (user.IsAdmin) { ThrowException("用户不存在!"); } UserLike userLike = null; switch (type) { case MusicRequestType.Song: var music = _musicManager.Find(objId); if (!music.IsPublished) { ThrowException("歌曲不存在!"); } if (JMDbContext.UserLike.Any(u => u.UserId == userId && u.MusicId == objId)) { ThrowException("您的喜好歌曲中已存在该歌曲,无需重复添加"); } userLike = new UserLike() { UserId = userId, MusicId = objId, }; break; default: return; } Create(userLike); Save(); }
public bool IsExistOfUserMusicList(int musicListId, int objId, MusicRequestType type) { switch (type) { case MusicRequestType.Song: return(_ctx.UserMusicListMusic.Any(l => l.MusicId == objId && l.MusicListId == musicListId)); default: return(false); } }
/// <summary> /// /// </summary> /// <param name="musicId"></param> /// <param name="type"></param> /// <param name="isToAdd">false 删除 true添加 null toggle</param> /// <returns></returns> public bool ToggleUserLike(int musicId, MusicRequestType type, bool?isToAdd = null) { if (_musicSourceType == MusicSourceType.JM) { var user = App.User; if (user != null) { switch (isToAdd) { case true: if (!MusicService.IsUserLike(user.Id, musicId, type)) { MusicService.ToggleUserLike(user.Id, musicId, type); } else { return(true); } break; case false: if (MusicService.IsUserLike(user.Id, musicId, type)) { MusicService.ToggleUserLike(user.Id, musicId, type); } else { return(true); } break; case null: MusicService.ToggleUserLike(user.Id, musicId, type); break; } if (_musicPlayerMenuViewModel.Id == musicId) { ChangeILikeState(); } return(true); } else { JMMessageBox.Show("添加我喜欢出错", "请先登录", JMMessageBoxButtonType.OK, JMMessageBoxIconType.Error); } } else { JMMessageBox.Show("添加我喜欢出错", "该音乐类型不支持", JMMessageBoxButtonType.OK, JMMessageBoxIconType.Error); } return(false); }
public UserLike Find(int userId, int objId, MusicRequestType type) { UserLike userLike = null; switch (type) { case MusicRequestType.Song: userLike = JMDbContext.UserLike.SingleOrDefault(u => u.UserId == userId && u.MusicId == objId); break; } return(userLike); }
public void Delete(int userId, int objId, MusicRequestType type) { UserLike userLike = null; switch (type) { case MusicRequestType.Song: userLike = JMDbContext.UserLike.SingleOrDefault(u => u.UserId == userId && u.MusicId == objId); break; default: return; } if (userLike != null) { Remove(userLike); } }
private void GetJMusics(MusicRequestType type, int page, int size) { Task.Factory.StartNew(() => { try { var musicInfoOfPageModel = GetJMusicInfoOfPageModel(type, _lastSearchKey, page, size); if (musicInfoOfPageModel == null) { return; } MusicSearchInfoChangedUtil.InvokeFromJMSearchChanged(musicInfoOfPageModel, page); } catch (Exception ex) { MusicSearchInfoChangedUtil.InvokeFromJMSearchChanged(null, page, false, ex.Message); } }); }
public void AddToUserMusicList(int userId, int objId, int userMusicListId, MusicRequestType type) { var user = _userManager.Find(userId); if (user == null || user.IsAdmin) { ThrowException("用户不存在"); } UserMusicList list = JMDbContext.UserMusicList.SingleOrDefault(u => u.Id == userMusicListId && u.UserId == userId && !u.IsDeleted); if (list == null) { ThrowException("未找到该用户的歌单"); } switch (type) { case MusicRequestType.Song: var music = _musicManager.Find(objId); if (music == null || !music.IsPublished) { ThrowException("歌曲不存在"); } var listMusic = new UserMusicListMusic() { MusicId = music.Id, MusicListId = list.Id }; JMDbContext.UserMusicListMusic.Add(listMusic); break; default: return; } Save(); }
public void AddToUserMusicList(int userId, int objId, int musicListId, MusicRequestType type) { _userMusicListManager.AddToUserMusicList(userId, objId, musicListId, type); }
public bool IsUserLike(int userId, int objId, MusicRequestType type) { return(_userLikeManager.Find(userId, objId, type) != null); }
public void ToggleUserLike(int userId, int objId, MusicRequestType type) { _userLikeManager.Toggle(userId, objId, type); }
public MusicSearchInfoRequestArgs(MusicRequestType type, int targetPageNumber, int size = 20) : base(targetPageNumber) { Type = type; Size = size; }
public static void InvokeFromJMRequest(MusicRequestType type, int targetPageNumber = 1, int size = 20) => JMRequestEvent?.Invoke(null, new MusicSearchInfoRequestArgs(type, targetPageNumber, size));