public ServiceTagStatisticsDTO GetServiceTagStatistics(string serviceId) { var reservations = _reservationRepository.GetFiltered(o => o.ServiceId == serviceId).ToList(); var results = new List <TagStatisticsDTO>(); foreach (var reservation in reservations) { var ret = _commentTagRepository.GetFiltered(o => o.ReservationId == reservation.Id).GroupBy(g => g.TagId).Select(item => new TagStatisticsDTO { TagId = item.Key, Count = item.Count(), TagName = _tagRepository.Get(item.Key)?.Name }).ToList(); results.AddRange(ret); } var result = new List <TagStatisticsDTO>(); foreach (var item in results) { var obj = result.FirstOrDefault(o => o.TagId == item.TagId); if (obj != null) { obj.Count += item.Count; } else { result.Add(item); } } //results.ForEach(item => { // var name = _tagRepository.Get(item.TagId)?.Name; // item.TagName = name; //}); return(new ServiceTagStatisticsDTO { ServiceId = serviceId, TagStatistics = result }); }
public GoodsTagStatisticsDTO Get(string goodsId) { var results = _commentTagRepository.GetFiltered(o => o.GoodsId == goodsId).GroupBy(g => g.TagId).Select(item => new TagStatisticsDTO { TagId = item.Key, Count = item.Count(), TagName = _tagRepository.Get(item.Key)?.Name }).ToList(); //results.ForEach(item => { // var name = _tagRepository.Get(item.TagId)?.Name; // item.TagName = name; //}); return(new GoodsTagStatisticsDTO { GoodsId = goodsId, TagStatistics = results }); }
public async Task <IEnumerable <CommentDTO> > Get(string goodsId, int pageIndex, int pageSize) { var results = new List <CommentDTO>(); var res = _commentRepository.GetFiltered(o => o.GoodsId == goodsId).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); foreach (var item in res) { var user = await _userServiceProxy.GetCookAppUser(item.CreatedBy); //await _authServiceProxy.GetUser(item.CreatedBy); results.Add(new CommentDTO { Content = item.Content, GoodsId = item.GoodsId, OrderId = item.OrderId, ImageIds = _commentImageRepository.GetFiltered(o => o.CommentId == item.Id).Select(o => o.ImageId).ToList(), TagIds = _commentTagRepository.GetFiltered(o => o.CommentId == item.Id).Select(g => g.TagId).ToList(), CreateTime = item.CreatedOn.ToString("yyyy-MM-dd"), NickName = string.IsNullOrEmpty(user?.UserName)?"匿名用户": ProcessUserName(user?.UserName), PortraitUrl = "https://resources.arcanestars.com/portrait.png" }); } return(results); }
public async Task <IEnumerable <CommentDTO> > Get(string goodsId, int pageIndex, int pageSize) { var results = new List <CommentDTO>(); var res = _commentRepository.GetFiltered(o => o.GoodsId == goodsId).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); foreach (var item in res) { var user = await _authServiceProxy.GetUser(item.CreatedBy); results.Add(new CommentDTO { Content = item.Content, GoodsId = item.GoodsId, OrderId = item.OrderId, ImageIds = _commentImageRepository.GetFiltered(o => o.CommentId == item.Id).Select(o => o.ImageId).ToList(), TagIds = _commentTagRepository.GetFiltered(o => o.CommentId == item.Id).Select(g => g.TagId).ToList(), CreateTime = item.CreatedOn.ToString("yyyy-MM-dd"), NickName = user?.NickName, PortraitUrl = user?.PortraitUrl }); } return(results); }