Example #1
0
        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());
        }
Example #2
0
        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);
        }
Example #3
0
        public IHttpActionResult GetGroupedList(DishReviewListFilterModel filter)
        {
            var model = dishReviewService.GetGroupedList(filter);

            return(Ok(model));
        }