Esempio n. 1
0
        public virtual ActionResult GetMoods(string moodName, MoodOrder moodOrder = MoodOrder.Rating, int page = 1)
        {
            var model = _moodsService.GetMoods(moodName, moodOrder, page, MoodsPageSize);

            return Json(model, JsonRequestBehavior.AllowGet);
        }
Esempio n. 2
0
        public IEnumerable<Mood> GetMoods(string moodName, MoodOrder moodOrder, int page, int pageSize)
        {
            var query = _moodRepository.All;
            if (!string.IsNullOrEmpty(moodName))
            {
                query = query.Where(x => x.Name.Contains(moodName));
            }
            IOrderedQueryable<Mood> ordered;

            switch (moodOrder)
            {
                case MoodOrder.Rating:
                    ordered = query.OrderByDescending(o => o.Weight);
                    break;
                case MoodOrder.New:
                    ordered = query.OrderByDescending(o => o.Created);
                    break;
                case MoodOrder.Popular:
                    ordered = query.OrderByDescending(o => o.MoodToImages.Count);
                    break;
                case MoodOrder.Random:
                    ordered = query.OrderBy(o => Guid.NewGuid());
                    page = 1;
                    break;
                default:
                    throw new InvalidEnumArgumentException("Invalid enum value for MoodOrder");
            }

            return ordered
                .TakePage(page, pageSize)
                .ToList();
        }