Ejemplo n.º 1
0
        public async Task <IActionResult> PostBook(BookForDetailedDto book)
        {
            if (book == null)
            {
                return(StatusCode(400));
            }

            var bookToSave = _mapper.Map <Book>(book);

            if (!await _repo.AuthorExist(bookToSave.AuthorId))
            {
                bookToSave.AuthorId = null;
            }

            if (book.Id == 0)
            {
                _repo.AddBook(bookToSave);
            }
            else
            {
                _repo.EditBook(bookToSave);
            }

            await _repo.SaveAll();

            return(StatusCode(201, book));
        }
        public IActionResult GetBookForAuthor(Guid authorid)
        {
            try
            {
                if (!_libraryrepository.AuthorExist(authorid))
                {
                    return(NotFound());
                }


                var Books = _libraryrepository.GetBooksForAuthor(authorid);


                var booksforauthors = Mapper.Map <IEnumerable <BookDto> >(Books);

                return(Ok(booksforauthors));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "error"));
            }
        }
        public IActionResult GetAuthor(Guid id)
        {
            try
            {
                if (!_libraryrepository.AuthorExist(id))
                {
                    //  throw new Exception("as");

                    return(NotFound());
                }
                var author = _libraryrepository.GetAuthor(id);

                var elautor = Mapper.Map <AuthorsDTO>(author);


                return(Ok(elautor));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Error interno del servidor"));
            }
        }