Exemplo n.º 1
0
        public async Task <ResponseMessage> SongClollectionDeleted([FromBody] SongCollectionRequest request)
        {
            // 日志输出:请求体
            Console.WriteLine("WS------ Request: \r\n" + JsonUtil.ToJson(request));
            // 创建响应体
            ResponseMessage response = new ResponseMessage();

            // 模型验证
            if (!Util.ModelValidCheck(ModelState, response))
            {
                return(response);
            }
            try
            {
                // 业务处理
                await Manager.CollectionSongCancel(response, request, default(CancellationToken));
            }
            catch (Exception e)
            {
                response.Code     = ResponseDefine.ServiceError;
                response.Message += "\r\n" + e.Message;
                // 日志输出:服务器错误
                Console.WriteLine("WS------ ServiceError: \r\n" + e);
            }
            // 日志输出:响应体
            Console.WriteLine("WS------ Response: \r\n" + response != null ? JsonUtil.ToJson(response) : "");
            return(response);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 取消收藏歌曲
        /// </summary>
        /// <param name="response"></param>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        public async Task CollectionSongCancel([Required] ResponseMessage response, [Required] SongCollectionRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Check arguments.
            if (request.User == null || request.User.Id == null)
            {
                Def.Response.Wrap(response, Def.Response.BadRequsetCode, "请求体未包含系统用户信息,用户未登陆不能进行收藏歌曲操作");
                return;
            }
            if (request.SongId == null)
            {
                Def.Response.Wrap(response, Def.Response.BadRequsetCode, "取消歌曲收藏,其ID不能为空");
                return;
            }
            // Check whether user exist.
            var user = TheUsers.ById(request.User.Id).SingleOrDefault();

            if (user == null)
            {
                Def.Response.Wrap(response, Def.Response.NotFoundCode, Def.User.NotFoundMsg);
                return;
            }
            // Check song exist.
            var songs = TheSongs.ById(request.SongId);

            if (songs.Count() == 0)
            {
                Def.Response.Wrap(response, Def.Response.BadRequsetCode, "你所取消收藏的歌曲不存在");
                return;
            }
            // Check play list exist.
            var playListId = TheUsers.FindPlayListIdByType(request.User.Id, Def.PlayList.Type.Collection).SingleOrDefault();

            if (playListId == null)
            {
                Def.Response.Wrap(response, Def.Response.NotFoundCode, "收藏歌单未找到,可能的原因是创建账号时没有默认创建收藏歌单!");
                return;
            }
            // Check the correlation between songs and songs.
            var playListSong = _RelPlayListSongStore.ById(request.User.Id, playListId, request.SongId).SingleOrDefault();

            if (playListSong == null)
            {
                Def.Response.Append(response, "你所取消收藏的歌曲不在你的收藏歌单中!");  // 修改ResponseMessage方法,添加追加函数?
                return;
            }
            else
            {
                await _RelPlayListSongStore.Delete(request.User.Id, playListSong, cancellationToken);

                response.Append("歌曲取消收藏成功!");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 用户收藏歌曲,通过UserId在UserPlayList中找到RecommendPlayList,在PlayListSong中添加记录,需要对SongId进行有效性验证
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <param name="songId">歌曲ID</param>
        public async Task CollectionSongAsync([Required] ResponseMessage response, [Required] SongCollectionRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (request.User == null || request.User.Id == null)
            {
                response.Code     = ResponseDefine.BadRequset;
                response.Message += "\r\n" + "请求体未包含系统用户信息,用户未登陆不能进行收藏歌曲操作";
                return;
            }
            // 判断用户是否存在
            //var user = await TheUsers.ReadAsync(a => a.Where(b => b.Id == request.User.Id), cancellationToken);
            var user = TheUsers.ById(request.User.Id).SingleOrDefault();

            if (user == null)
            {
                response.Code     = ResponseDefine.NotFound;
                response.Message += "\r\n" + Def.User.NotFoundMsg;
                return;
            }
            // 找到PlayListId
            var RecommendPlayListId = await _RelUserPlayListStore.ReadAsync(a => a.Where(b => b.UserId == request.User.Id && b.Type == Def.PlayList.Type.Recommend).Select(c => c.PlayListId), cancellationToken);

            // 找不到歌单
            if (RecommendPlayListId == null)
            {
                response.Code     = ResponseDefine.NotFound;
                response.Message += "\r\n" + Def.PlayList.NotFoundMsg;
                return;
            }
            // 判断是否已经收藏
            var playListSong = _RelPlayListSongStore.BySongId(user.Id, request.SongId).SingleOrDefault();

            if (playListSong == null)
            {
                // 判断歌曲是否存在
                await _RelPlayListSongStore.Create(user.Id, RecommendPlayListId, request.SongId, cancellationToken);
            }
            else
            {
                response.Code = ResponseDefine.PostRepeat;
            }
        }
        public Task <List <Song> > Handle(SongCollectionRequest collectionRequest, CancellationToken cancellationToken)
        {
            var songs = _songRepository.Get();

            return(Task.FromResult(_objectMapper.Map <List <Song> >(songs)));
        }