public async Task <ResponseMessage> Entry([FromBody] SongInfoEntryRequest request) { // 日志输出:请求体 Console.WriteLine("WS------ Request: \r\n" + request); // 创建响应体 ResponseMessage response = new ResponseMessage(); // 模型验证 if (!Util.ModelValidCheck(ModelState, response)) { return(response); } try { /// 业务处理,TODO:<see cref=""/> await _SongManager.SongEntryAsync(response, request); } 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); }
/// <summary> /// 歌曲信息录入(OK)|更新(OK)必须要歌曲ID,该方法会根据是否有ID来判断是创建还是删除 /// TODO:如果后面录入了一个与以前创建的歌曲一致的歌曲,如何将两者的信息合并,建议的方法调用 Merge(long extSongId, long newSongId)//合并两首歌曲 MergeIfName(SongInfo songinfo)//录入时如果有重名的就覆盖掉原有的 /// </summary> /// <param name="response"></param> /// <param name="request"></param> public async Task SongEntryAsync([Required] ResponseMessage response, [Required] SongInfoEntryRequest request) { // 权限检查在Controller中验证 // 参数检查,空检查和存在检查(操作数据是否存在于数据库) var songId = await Store.ReadAsync(a => a.Where(b => b.Id == request.SongInfo.Id).Select(c => c.Id), CancellationToken.None); // 如果没有被创建 if (songId == null) { // 数据创建 await Store.CreateAsync(new Models.Song { Name = request.SongInfo.Name, Description = request.SongInfo.Description, ReleaseTime = request.SongInfo.ReleaseTime, Duration = request.SongInfo.Duration ?? 0, _CreateUserId = request.User.Id }, CancellationToken.None); response.Message += "\r\n" + ResponseDefine.CreatedMsg + "\r\n" + Def.Song.CreatedMsg; } else { // 数据更新 await Store.UpdateAsync(new Models.Song { Id = songId, Name = request.SongInfo.Name, Description = request.SongInfo.Description, ReleaseTime = request.SongInfo.ReleaseTime, Duration = request.SongInfo.Duration ?? 0, _UpdateUserId = request.User.Id }, CancellationToken.None); response.Message += "\r\n" + Def.Song.UpdatedMsg; } }