Example #1
0
        public async Task <IActionResult> Create(CreateNewAuthorRequest request)
        {
            if (request.Id.Equals(Guid.Empty))
            {
                request.Id = Guid.NewGuid();
            }
            var authorDto           = _mapper.Map <CreateNewAuthorRequest, Author>(request);
            var createAuthorCommand = new CreateNewAuthorCommand
            {
                Author = authorDto
            };

            try
            {
                var created = await _mediator.Send(createAuthorCommand);

                if (!created)
                {
                    return(Conflict());
                }
                var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
                var locationUtl = baseUrl + "/" + ApiRouts.Genres.Get.Replace("{authorId}", authorDto.Id.ToString());

                var createResponse = _mapper.Map <Author, CreateNewAuthorResponse>(authorDto);
                return(Created(locationUtl, createResponse));
            }
            catch (Exception e)
            {
                return(BadRequest(e.ToString()));
            }
        }
Example #2
0
        public async Task AddNewAuthorTestFail()
        {
            var authorToAdd = _authorFaker.Generate();

            _dbContext.GetAuthor(authorToAdd.Id).Returns(_ => authorToAdd);

            var createNewAuthorCommandHandler = new CreateNewAuthorCommandHandler(_dbContext);
            var createNewAuthorCommand        = new CreateNewAuthorCommand
            {
                Author = authorToAdd
            };
            var result = await createNewAuthorCommandHandler.Handle(createNewAuthorCommand, CancellationToken.None);

            result.Should().Be(false);
        }