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