public async Task <CreatedActionResult <ItemResponse> > PostAddItemToCharacterInventoryAsync(
            [FromServices] NaheulbookExecutionContext executionContext,
            [FromRoute] int characterId,
            CreateItemRequest request
            )
        {
            try
            {
                var item = await _characterService.AddItemToCharacterAsync(executionContext, characterId, request);

                return(_mapper.Map <ItemResponse>(item));
            }
            catch (ForbiddenAccessException ex)
            {
                throw new HttpErrorException(StatusCodes.Status403Forbidden, ex);
            }
            catch (CharacterNotFoundException ex)
            {
                throw new HttpErrorException(StatusCodes.Status404NotFound, ex);
            }
            catch (ItemTemplateNotFoundException ex)
            {
                throw new HttpErrorException(StatusCodes.Status400BadRequest, ex);
            }
        }
示例#2
0
        public async Task PostAddItemToCharacterInventory_ShouldLoadCharacterFromService_ThenMapItIntoResponse()
        {
            const int characterId  = 2;
            var       item         = new Item();
            var       itemResponse = new ItemResponse();
            var       request      = new CreateItemRequest();

            _characterService.AddItemToCharacterAsync(_executionContext, characterId, request)
            .Returns(item);
            _mapper.Map <ItemResponse>(item)
            .Returns(itemResponse);

            var result = await _controller.PostAddItemToCharacterInventoryAsync(_executionContext, characterId, request);

            result.Value.Should().BeSameAs(itemResponse);
        }