public async Task <IActionResult> AddReward(int id)
        {
            var user = await _authorizerService.Authorize(HttpContext);

            if (user == null)
            {
                return(Redirect(GlobalConstants.Default_Login_Page));
            }

            var achievement = _achievementsService.ById(id);

            if (achievement == null)
            {
                return(Redirect(Achievements_Root_Path));
            }

            var model = new AddItemToAchievementInputModel
            {
                AchievementId   = id,
                AchievementName = achievement.Name,
                Items           = _itemsService.All()
            };

            return(View(model));
        }
        public IActionResult AddReward(AddItemToAchievementInputModel model)
        {
            var success = _achievementsService.AddItemToAchievement(model);

            if (success)
            {
                return(RedirectToAction("Details", new { id = model.AchievementId }));
            }

            return(View(model));
        }
        public bool AddItemToAchievement(AddItemToAchievementInputModel model)
        {
            var achievement = this.ById(model.AchievementId);

            if (achievement == null)
            {
                return(false);
            }

            var itemToAdd = _itemsService.ByName(model.ItemName);

            achievement.Rewards.Add(itemToAdd);
            _db.SaveChanges();

            return(true);
        }