Exemple #1
0
        public async Task <ActionResult <BookMongoDTO> > AddBook([FromBody] BookMongoDTO book)
        {
            var author = await writersRepository.FindWriter(book.Writer.Id);

            if (author != null)
            {
                book.Writer = author;
            }
            else
            {
                var addWriterResult = writersRepository.AddWriter(book.Writer);
                if (addWriterResult == null)
                {
                    return(BadRequest());
                }
            }
            var addBookResult = await booksRepository.AddBook(book);

            if (addBookResult != null)
            {
                return(Ok(CreateLinksForBook(addBookResult)));
            }
            else
            {
                await writersRepository.DeleteWriter(book.Writer.Id);

                return(BadRequest());
            }
        }
Exemple #2
0
 private BookMongoDTO CreateLinksForBook(BookMongoDTO book)
 {
     book.Links.Add(new LinkDTO(Url.Link("GetBook", new { id = book.Id }), "self", "GET"));
     book.Links.Add(new LinkDTO(Url.Link("UpdateBook", null), "update_book", "PUT"));
     book.Links.Add(new LinkDTO(Url.Link("DeleteBook", new { id = book.Id }), "delete_book", "DELETE"));
     if (book.Writer != null)
     {
         book.Writer = CreateLinksForWriter(book.Writer);
     }
     return(book);
 }
Exemple #3
0
        public async Task <bool> UpdateBook(BookMongoDTO book)
        {
            var updateResult = await
                               libraryContext
                               .Books
                               .ReplaceOneAsync(
                filter : g => g.Id == book.Id,
                replacement : book);

            return(updateResult.IsAcknowledged &&
                   updateResult.ModifiedCount > 0);
        }
Exemple #4
0
        public async Task <BookMongoDTO> AddBook(BookMongoDTO book)
        {
            try
            {
                await libraryContext.Books.InsertOneAsync(book);

                return(book);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemple #5
0
        public async Task <IActionResult> UpdateBook(BookMongoDTO book)
        {
            var result = await booksRepository.UpdateBook(book);

            if (result)
            {
                return(Ok("Resource updated!"));
            }
            else
            {
                return(BadRequest());
            }
        }