public ActionResult ManageHighlights(ManageHighlightsViewModel model)
        {
            // TODO: implement editing
            if (model.SelectedAchievementIDs == null && model.SelectedQuestsIDs == null)
                ModelState.AddModelError(String.Empty, "At least one achievement or quest must be selected to be featured!");

            if (ModelState.IsValid)
            {
                UnitOfWork work = new UnitOfWork();
                work.SystemRepository.AdminEditHighlights(model);
                return RedirectToAction("Index");
            }

            ManageHighlightsViewModel refreshModel = ManageHighlightsViewModel.Populate();
            model.AllAchievementsList = refreshModel.AllAchievementsList;
            model.AllQuestsList = refreshModel.AllQuestsList;

            return View(model);
        }
        public void AdminEditHighlights(ManageHighlightsViewModel model)
        {
            // TODO: Optimize?
            // Remove old featured items
            IEnumerable<quest_template> currentFeaturedQuests = _dbContext.quest_template.Where(m => m.featured);
            foreach (quest_template quest in currentFeaturedQuests)
                quest.featured = false;

            IEnumerable<achievement_template> currentFeaturedAchievements = _dbContext.achievement_template.Where(m => m.featured);
            foreach (achievement_template achievement in currentFeaturedAchievements)
                achievement.featured = false;

            // Set new featured items
            if (model.SelectedQuestsIDs != null)
            {
                IEnumerable<quest_template> newFeaturedQuests = _dbContext.quest_template.Where(m => model.SelectedQuestsIDs.Contains(m.id));
                foreach (quest_template quest in newFeaturedQuests)
                    quest.featured = true;
            }

            if (model.SelectedAchievementIDs != null)
            {
                IEnumerable<achievement_template> newFeaturedAchievements = _dbContext.achievement_template.Where(m => model.SelectedAchievementIDs.Contains(m.id));
                foreach (achievement_template achievement in newFeaturedAchievements)
                    achievement.featured = true;
            }

            Save();
        }