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 })); }
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 })); }