public async Task <IActionResult> PutStatBonusAdAsync( [FromServices] NaheulbookExecutionContext executionContext, [FromRoute] int characterId, PutStatBonusAdRequest request ) { try { await _characterService.SetCharacterAdBonusStatAsync(executionContext, characterId, request); return(NoContent()); } catch (ForbiddenAccessException ex) { throw new HttpErrorException(StatusCodes.Status403Forbidden, ex); } catch (CharacterNotFoundException ex) { throw new HttpErrorException(StatusCodes.Status404NotFound, ex); } }
public async Task SetCharacterAdBonusStatAsync(NaheulbookExecutionContext executionContext, int characterId, PutStatBonusAdRequest request) { using (var uow = _unitOfWorkFactory.CreateUnitOfWork()) { var character = await uow.Characters.GetWithGroupAsync(characterId); if (character == null) { throw new CharacterNotFoundException(characterId); } _authorizationUtil.EnsureCharacterAccess(executionContext, character); character.StatBonusAd = request.Stat; await uow.SaveChangesAsync(); var session = _notificationSessionFactory.CreateSession(); session.NotifyCharacterSetStatBonusAd(characterId, request.Stat); await session.CommitAsync(); } }