//// POST: api/Books //[ResponseType(typeof(Book))] public IHttpActionResult PostBook(BookDto book) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _booksService.Add(book); return(CreatedAtRoute("DefaultApi", new { id = book.Id }, book)); }
public ActionResult <Book> Create([FromBody] Book newBook) { try { return(Ok(_bs.Add(newBook))); } catch (System.Exception err) { return(BadRequest(err.Message)); } }
public void RemovingLink_BetweenTwoWords_WillRelinkWordsInBooks( [Values(true, false)] bool enBookLang, [Values(true, false)] bool invertRemoval) { // Arrange var langEn = new Language("English"); var langEsp = new Language("Spanish"); var masterA = new MasterWord(); var wordA = new Word(masterA, "Hi", langEn); var wordB = new Word(masterA, "Hola", langEsp); new Word(masterA, "some word", new Language("some lang")); var book = new Book("name", enBookLang ? langEn : langEsp); book.AddWord(masterA); MasterWordsService.Add(masterA); BooksService.Add(book); // Act RefreshServicesAndClearCache(); wordA = WordsService.GetAll().First(w => w.ID == wordA.ID); wordB = WordsService.GetAll().First(w => w.ID == wordB.ID); if (invertRemoval) { WordsService.RemoveTranslation(wordA, wordB); } else { WordsService.RemoveTranslation(wordB, wordA); } // Assert book = BooksService.Get(book.ID); Assert.AreEqual(1, book.WordCount, "Book word count should be 1. Old Ref"); Assert.AreEqual(1, book.WordCount, "Book word count should be 1. New Ref"); Assert.IsNotNull(book.Words.First()[book.Language], "After removing translation between two words, book should keep the master word which aligns with book language. New Ref"); var wordInBook = enBookLang ? wordA : wordB; var wordWithoutBook = enBookLang ? wordB : wordA; Assert.AreEqual(book, wordInBook.MasterWord.Books.First(), "word should be in a book"); Assert.AreEqual(book.Language, wordInBook.Language, "book and word languages should be the same"); Assert.AreEqual(book.Words.First(), wordInBook.MasterWord, "master word should be the same of word left of correct language"); Assert.AreEqual(0, wordWithoutBook.MasterWord.Books.Count(), "other word should have no books"); }
public void AddBook_ShouldIncreseBooks() { var booksService = new BooksService(mockedBooksRepository, mockedLogger); var excpectedCount = 4; booksService.Add(new Book { Id = 4, Title = "NewBook" }); Assert.AreEqual(excpectedCount, inMemoryBooks.Count()); }
public void AddShould_ReturnValue() { // Arrange var bookService = new BooksService(bookRepoMock.Object, contextMock.Object); Book book = new Book(); // Arrange contextMock.Setup(x => x.Commit()).Returns(1); var result = bookService.Add(book); // Assert Assert.IsInstanceOf(typeof(int), result); }
public async Task <ActionResult> Create(BookViewModel model) { try { await service.Add(model.Name, model.Author, model.ISBN); return(RedirectToAction("Index")); } catch { return(View()); } }
public IActionResult Add([FromBody] BookRequestDTO book) { try { var message = _bookService.Add(book); if (string.IsNullOrEmpty(message)) { return(Ok("Livro cadastrado com sucesso!")); } else { return(BadRequest(message)); } } catch (Exception ex) { return(BadRequest(ex.InnerException.Message)); } }
public void AddingLink_BetweenTwoWords_WillUpdateRefsInBooksToCorrectMasterWord( [Values(true, false)] bool bookLinksToBoth, [Values(true, false)] bool cleanCache) { // Arrange PrepareTwoWords(out MasterWord masterA, out Word wordA, out MasterWord masterB, out Word wordB); var book = new Book("name", wordA.Language); book.AddWord(masterB); // masterB is the one being destroyed if (bookLinksToBoth) { book.AddWord(masterA); } BooksService.Add(book); if (cleanCache) { RefreshServicesAndClearCache(); wordA = WordsService.GetAll().First(w => w.ID == wordA.ID); wordB = WordsService.GetAll().First(w => w.ID == wordB.ID); } // Act WordsService.AddTranslation(wordA, wordB); // Assert book = BooksService.Get(book.ID); masterA = MasterWordsService.Get(masterA.ID); masterB = MasterWordsService.Get(masterB.ID); Assert.AreEqual(masterA.ID, book.Words.First().ID, "Master words should be the same"); Assert.AreEqual(1, book.Words.Count(), "Master words should be the same"); Assert.AreEqual(book, masterA.Books.First(), "MasterA should link to correct book"); Assert.IsNull(masterB, "MasterB should have been destroyed"); }
public IActionResult CreateBook(Guid authorId, [FromBody] BookCreateDTO model) { if (model == null) { return(BadRequest()); } if (!AuthorsService.Exists(authorId)) { return(NotFound()); } if (!ModelState.IsValid) { return(UnprocessableEntity()); } model.AuthorId = authorId; var entity = Mapper.Map <BookCreateDTO, Book>(model); BooksService.Add(entity); var createdModel = Mapper.Map <Book, BookDTO>(entity); return(CreatedAtRoute(nameof(GetBook), new { id = entity.Id }, createdModel)); }
static void Main(string[] args) { BooksService bs = new BooksService(); GenresService gs = new GenresService(); ReviewsService rs = new ReviewsService(); int menuChoice = 0; do { bool correct = true; do { try { ShowMenu(); Console.WriteLine("Input menu choice: "); menuChoice = Convert.ToInt32(Console.ReadLine()); correct = true; } catch { correct = false; } }while (correct == false); Console.Clear(); switch (menuChoice) { case 1: //Add Book Book myBook = new Book(); Console.WriteLine("Input book name: "); myBook.Name = Console.ReadLine().ToLower(); Console.WriteLine(); Console.WriteLine("Input book isbn: "); myBook.Isbn = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book publisher: "); myBook.Publisher = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book author: "); myBook.Author = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book year: "); myBook.Year = Convert.ToInt32(Console.ReadLine()); //get all the genres that i have in my db Console.WriteLine(); foreach (var g in gs.GetGenres()) { Console.WriteLine($"{g.Id}. {g.Name}"); } Console.WriteLine(); Console.WriteLine("Select one of the Genres by inputting the number next to the name: "); myBook.GenreFK = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); bs.Add(myBook); Console.WriteLine("Book was added successfully"); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 2: //Get Books List <Book> listOfAllBooks = bs.GetBooks(); DisplayListOfBooks(listOfAllBooks); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 3: //Get Books by Genre foreach (var g in gs.GetGenres()) { Console.WriteLine($"{g.Id}. {g.Name}"); } Console.WriteLine(); Console.WriteLine("Select one of the Genres by inputting the number next to the name: "); int selectedGenre = Convert.ToInt32(Console.ReadLine()); //overloading //static polymorphism var listOfBooksFilteredByGenre = bs.GetBooks(selectedGenre); DisplayListOfBooks(listOfBooksFilteredByGenre); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 4: var total = bs.GetTotalNoOfBooks(); Console.WriteLine($"The total no of books in the library db is {total}"); Console.WriteLine(); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 5: Console.WriteLine("Please input the no. next to the field you want to sort books by"); Console.WriteLine("1. Name"); Console.WriteLine("2. Author"); Console.WriteLine("3. Year"); Console.WriteLine("Input 1-3: "); int fieldChoice = Convert.ToInt32(Console.ReadLine()); var sortedList = bs.GetBooksSorted(fieldChoice); DisplayListOfBooks(sortedList); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 6: break; case 7: Console.WriteLine("Which book do you want to update? Input the isbn"); string isbn = Console.ReadLine(); Book myBookToEdit = new Book(); Console.WriteLine("Input book name: "); myBookToEdit.Name = Console.ReadLine().ToLower(); Console.WriteLine(); Console.WriteLine("Input book publisher: "); myBookToEdit.Publisher = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book author: "); myBookToEdit.Author = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book year: "); myBookToEdit.Year = Convert.ToInt32(Console.ReadLine()); //get all the genres that i have in my db Console.WriteLine(); foreach (var g in gs.GetGenres()) { Console.WriteLine($"{g.Id}. {g.Name}"); } Console.WriteLine(); Console.WriteLine("Select one of the Genres by inputting the number next to the name: "); myBookToEdit.GenreFK = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); bs.Update(isbn, myBookToEdit.Name, myBookToEdit.Year, myBookToEdit.Publisher, myBookToEdit.Author, myBookToEdit.GenreFK); Console.WriteLine("Book details updated"); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 8: Console.WriteLine("Author\t\tTotal"); foreach (AuthorBook item in bs.GetAuthorWithNoOfBooks()) { Console.WriteLine($"{item.Author}\t\t{item.Total}"); } Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 9: Console.WriteLine("Input isbn:"); string isbnForReview = Console.ReadLine(); Console.WriteLine("Input comment:"); string commentForReview = Console.ReadLine(); Console.WriteLine("Input rating:"); int ratingForReview = Convert.ToInt32(Console.ReadLine()); rs.ReviewABook(isbnForReview, commentForReview , ratingForReview); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 10: Console.WriteLine("Input isbn:"); string isbn1 = Console.ReadLine(); foreach (var r in rs.GetReviews(isbn1)) { } Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 11: Console.WriteLine("Input isbn:"); string isbn2 = Console.ReadLine(); Console.WriteLine($"Avg rating for this book is {rs.GetAverageRatingOfBook(isbn2)}"); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 12: foreach (var item in rs.GetBooksWithNoOfReviews()) { Console.WriteLine($"Book isbn {item.Isbn} has {item.TotalReviews} with avg rating of {item.AvgRating}"); } Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; default: if (menuChoice != 999) { Console.WriteLine("Input is not valid"); } break; } } while (menuChoice != 999); }
static void Main(string[] args) { BooksService bs = new BooksService(); GenresService gs = new GenresService(); int menuChoice = 0; do { ShowMenu(); Console.WriteLine("Input menu choice: "); menuChoice = Convert.ToInt32(Console.ReadLine()); Console.Clear(); switch (menuChoice) { case 1: //Add Book Book myBook = new Book(); Console.WriteLine("Input book name: "); myBook.Name = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book isbn: "); myBook.Isbn = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book publisher: "); myBook.Publisher = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book author: "); myBook.Author = Console.ReadLine(); Console.WriteLine(); Console.WriteLine("Input book year: "); myBook.Year = Convert.ToInt32(Console.ReadLine()); //get all the genres that i have in my db Console.WriteLine(); foreach (var g in gs.GetGenres()) { Console.WriteLine($"{g.Id}. {g.Name}"); } Console.WriteLine(); Console.WriteLine("Select one of the Genres by inputting the number next to the name: "); myBook.GenreFK = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); bs.Add(myBook); Console.WriteLine("Book was added successfully"); Console.WriteLine("Press a key to continue..."); Console.ReadKey(); break; case 2: //Get Books break; case 3: //Get Books by Genre foreach (var g in gs.GetGenres()) { Console.WriteLine($"{g.Id}. {g.Name}"); } Console.WriteLine(); Console.WriteLine("Select one of the Genres by inputting the number next to the name: "); break; default: if (menuChoice != 999) { Console.WriteLine("Input is not valid"); } break; } } while (menuChoice != 999); }
public void AddBook_ShouldThrowArgumentNullException_IfInputIsNull() { var booksService = new BooksService(mockedBooksRepository, mockedLogger); Assert.ThrowsException <ArgumentNullException>(() => booksService.Add(null)); }
public async Task <IActionResult> Add([FromBody] BookToCreate bookToAdd) { return(Ok(await booksService.Add(bookToAdd))); }