예제 #1
0
        public async Task <IActionResult> EditAsync(int id, RewardInputModel input, bool saveDraft = false)
        {
            if (!ModelState.IsValid)
            {
                return(View(input));
            }

            var reward = _rewardService.GetReward(id);

            if (reward == null)
            {
                return(NotFound());
            }

            var authResult = await _authorizationService.AuthorizeAsync(User, reward, Policy.CanEditReward);

            if (!authResult.Succeeded)
            {
                return(Forbid());
            }

            _mapper.Map(input, reward);
            _rewardService.SaveChanges();

            _logger.LogInformation("{user} edited reward {reward}", User.Identity.Name, reward.Id);

            return(saveDraft ? RedirectToAction("Index") : RedirectToAction("Attachments", new { id = reward.Id }));
        }
예제 #2
0
        public IActionResult Create(RewardInputModel input, bool saveDraft = false)
        {
            if (!ModelState.IsValid)
            {
                return(View(input));
            }

            var reward = _mapper.Map <Reward>(input);

            reward.CreatorId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            _rewardService.AddReward(reward);
            _rewardService.SaveChanges();

            _logger.LogInformation("{user} created reward {reward}", User.Identity.Name, reward.Id);

            return(saveDraft ? RedirectToAction("Index") : RedirectToAction("Attachments", new { id = reward.Id }));
        }