public async Task <CreatedActionResult <EffectResponse> > PostCreateEffectAsync( [FromServices] NaheulbookExecutionContext executionContext, [FromRoute] int subCategoryId, CreateEffectRequest request ) { try { var effect = await _effectService.CreateEffectAsync(executionContext, subCategoryId, request); return(_mapper.Map <EffectResponse>(effect)); } catch (ForbiddenAccessException ex) { throw new HttpErrorException(StatusCodes.Status403Forbidden, ex); } }
public async Task PostCreateEffect_CallEffectService() { const int subCategoryId = 12; var createEffectRequest = new CreateEffectRequest(); var expectedEffectResponse = new EffectResponse(); var effect = new Effect { Id = 42 }; _effectService.CreateEffectAsync(_executionContext, subCategoryId, createEffectRequest) .Returns(effect); _mapper.Map <EffectResponse>(effect) .Returns(expectedEffectResponse); var result = await _effectSubCategoriesController.PostCreateEffectAsync(_executionContext, subCategoryId, createEffectRequest); result.StatusCode.Should().Be(201); result.Value.Should().Be(expectedEffectResponse); }
public Task <EffectResponse> CreateEffectAsync(CreateEffectRequest request, string jwt) { return(_naheulbookHttpClient.PostAndParseJsonResultAsync <EffectResponse>("/api/v2/effects", request, jwt)); }
public async Task <Effect> CreateEffectAsync(NaheulbookExecutionContext executionContext, int subCategoryId, CreateEffectRequest request) { await _authorizationUtil.EnsureAdminAccessAsync(executionContext); var effect = new Effect { Name = request.Name, SubCategoryId = subCategoryId, Description = request.Description, Dice = request.Dice, TimeDuration = request.TimeDuration, CombatCount = request.CombatCount, Duration = request.Duration, LapCount = request.LapCount, DurationType = request.DurationType, Modifiers = request.Modifiers.Select(s => new EffectModifier { StatName = s.Stat, Type = s.Type, Value = s.Value }).ToList() }; using (var uow = _unitOfWorkFactory.CreateUnitOfWork()) { uow.Effects.Add(effect); await uow.SaveChangesAsync(); } return(effect); }