public IList <DishReviewListItemModel> GetList(DishReviewListFilterModel filter) { var reviews = dishReviewRepository.CreateQuery().Where(x => x.DishId == filter.DishId && x.Review.PlaceId == filter.PlaceId).ToList(); var result = reviews.Select(x => new DishReviewListItemModel { Id = x.Id, DishId = x.DishId, GId = x.Review.Place.GId, Name = x.Dish.Name, Review = x.Review.Text, Rating = x.Review.Rating, ImageUri = imageService.GetImagePath(x.Review.ImageId), ReviewedBy = x.Review.User.UserName }); return(result.ToList()); }
public IList <GroupedDishReviewListItemModel> GetGroupedList(DishReviewListFilterModel filter) { var reviews = (from dr in dishReviewRepository.CreateQuery() group dr by new { dr.DishId, dr.Review.PlaceId }).ToList(); var result = reviews.Select(x => new GroupedDishReviewListItemModel { DishId = x.Key.DishId, DishName = x.FirstOrDefault().Dish.Name, PlaceId = x.FirstOrDefault().Review.PlaceId, PlaceName = x.FirstOrDefault().Review.Place.Name, GId = x.FirstOrDefault().Review.Place.GId, RatingAverage = x.Average(y => y.Review.Rating), ReviewCount = x.Count(), TagsIds = x.FirstOrDefault().Dish.DishTag.Select(y => y.TagId).ToArray(), ImageUri = imageService.GetImagePath(x.FirstOrDefault().Review.ImageId), Lat = Convert.ToDouble(x.FirstOrDefault().Review.Place.Lat), Lng = Convert.ToDouble(x.FirstOrDefault().Review.Place.Lng), IsVegetarian = x.FirstOrDefault().Dish.DishTag.Count(y => y.Tag.Name == "Vegetariškas") > 0 }).OrderByDescending(x => x.RatingAverage).ToList(); return(result); }
public IHttpActionResult GetGroupedList(DishReviewListFilterModel filter) { var model = dishReviewService.GetGroupedList(filter); return(Ok(model)); }