Exemplo n.º 1
0
        public async Task <ActionResult <ReadBookDto> > Put(int id, [FromBody] CreateBookDto updateBookDto)
        {
            var validator        = new CreateBookDtoValidator();
            var validationResult = await validator.ValidateAsync(updateBookDto);

            var requestIsInvalid = id == 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var bookToBeUpdate = await _bookService.GetBookById(id);

            if (bookToBeUpdate == null)
            {
                return(NotFound());
            }

            var book = _mapper.Map <CreateBookDto, Book>(updateBookDto);

            await _bookService.UpdateBook(bookToBeUpdate, book);

            var updatedBook = await _bookService.GetBookById(id);

            var updatedBookDto = _mapper.Map <Book, ReadBookDto>(updatedBook);

            return(Ok(updatedBookDto));
        }
Exemplo n.º 2
0
        public async Task <ActionResult <ReadBookDto> > PostAsync([FromBody] CreateBookDto createBookDto)
        {
            var validator = new CreateBookDtoValidator();

            var validationResult = await validator.ValidateAsync(createBookDto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var bookToCreate = _mapper.Map <CreateBookDto, Book>(createBookDto);

            var newBook = await _bookService.CreateBook(bookToCreate);

            var book = await _bookService.GetBookById(newBook.Id);

            var musicResource = _mapper.Map <Book, ReadBookDto>(book);

            return(Ok(musicResource));
        }