/// <summary> /// 收藏行程 /// </summary> /// <param name="request">The request.</param> /// <param name="userId"></param> /// <returns>Task<Response>.</returns> /// <exception cref="NotImplementedException"></exception> public async Task <Response <CollectStrokeResponse> > CollectStroke(CollectStrokeRequest request) { var userId = contextAccessor.UserId(); var userInfo = await this.strokeContext.Users.FirstOrDefaultAsync(x => x.Id == userId); if (userInfo == null || !userInfo.IsActive) { throw new Exception("用户信息不存在或已被禁用"); } var strokeInfo = await this.strokeContext.Strokes.FirstOrDefaultAsync(x => x.Id == request.StrokeId); if (strokeInfo == null) { throw new Exception("获取行程失败"); } var collectId = 0l; if (request.CollectId == 0) { var collectStoke = await this.strokeContext.StrokeCollects.FirstOrDefaultAsync(x => x.StrokeId == request.StrokeId && x.UserId == userId); if (collectStoke != null) { throw new Exception("该行程已经收藏"); } //添加收藏 var newCollect = this.strokeContext.StrokeCollects.Add(new StrokeCollect { StrokeId = request.StrokeId, UserId = userId, IsActive = true }); this.strokeContext.SaveChanges(); collectId = newCollect.Entity.Id; } else { var collectStoke = await this.strokeContext.StrokeCollects.FirstOrDefaultAsync(x => x.Id == request.CollectId); if (collectStoke == null) { throw new Exception("获取收藏行程信息失败"); } this.strokeContext.StrokeCollects.Remove(collectStoke); this.strokeContext.SaveChanges(); } return(new Response <CollectStrokeResponse> { Data = new CollectStrokeResponse { CollectId = collectId } }); }
public Task <Response <CollectStrokeResponse> > CollectStroke([FromBody] CollectStrokeRequest request) { return(this.strokeService.CollectStroke(request)); }