예제 #1
0
        public BookDetailDto AddNewBookWithAllFields(DateTime publishDate,
                                                     string author      = "Ralls, Kim",
                                                     string title       = "test title",
                                                     decimal price      = 0.0m,
                                                     string genre       = "Genre",
                                                     string description = "Description"
                                                     )
        {
            int           bookId  = NextBookExternalId() + 1;
            BookDetailDto newBook = new BookDetailDto
            {
                Id          = bookId,
                Author      = author,
                Title       = title,
                Price       = 100.1m,
                Genre       = genre,
                Description = description,
                PublishDate = publishDate
            };

            using (var db = new BooksAPIContext())
            {
                db.Books.Add(newBook.ToModel());
                db.SaveChanges();
            }
            return(newBook);
        }
예제 #2
0
        public IHttpActionResult PostBook(BookDetailDto book)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var bookModel = book.ToModel();

            db.Books.Add(bookModel);
            db.SaveChanges();
            var res = CreatedAtRoute("DefaultApi", new { controller = "Books", id = bookModel.BookId }, book);

            return(res);
        }
예제 #3
0
        private BookDetailDto addNewBookWithAllFields()
        {
            int           bookId  = GetMaxBookExternalId() + 1;
            BookDetailDto newBook = new BookDetailDto
            {
                Id          = bookId,
                Author      = "Ralls, Kim",
                Title       = "Integration testing",
                Price       = 100.1m,
                Genre       = "Genre",
                Description = "Description",
                PublishDate = DateTime.Now
            };

            db.Books.Add(newBook.ToModel());
            db.SaveChanges();
            return(newBook);
        }
예제 #4
0
        public IHttpActionResult PutBook(int id, [FromBody] BookDetailDto bookDeatil)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != bookDeatil.Id)
            {
                return(BadRequest());
            }

            var originalBook = db.Books.Single(b => b.ExternalId == bookDeatil.Id);

            var updatedBook = bookDeatil.ToModel();

            updatedBook.BookId = originalBook.BookId;
            db.Entry(originalBook).CurrentValues.SetValues(updatedBook);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }