public bool DeleteBook(BookDM bookDM) { try { Book book = UOW.Books.Get(bookDM.BookID); if (UOW.BookUsers.Find(bu => bu.BookID == book.BookID).Count() == 0) { foreach (BookAuthor ba in UOW.BookAuthors.Find(ba => ba.BookID == book.BookID)) { UOW.BookAuthors.Delete(ba.BookAuthorID); } UOW.Save(); UOW.Books.Delete(book.BookID); UOW.Save(); return(true); } return(false); } catch (Exception ex) { throw new DataException(ex.Message, "Error in deleting Book"); } }
public IEnumerable <BookDM> BookSearch(string searchSrring) { searchSrring = searchSrring.ToLower(); IEnumerable <Book> books = UOW.Books.GetAll(); IEnumerable <Author> authors = UOW.Authors.GetAll(); //IEnumerable<BookAuthor> bookAuthors = UOW.BookAuthors.GetAll(); var bookQuery = books.Where(b => b.Name.ToLower().Contains(searchSrring) || b.Genre.Name.ToLower().Contains(searchSrring) || b.BookAuthors.Any(ba => ba.Author.FirstName.ToLower().Contains(searchSrring) || ba.Author.LastName.ToLower().Contains(searchSrring))); //var query1 = // (from book in books // join bookAuthor in bookAuthors // on book.BookID equals bookAuthor.BookID // join author in authors // on bookAuthor.AuthorID equals author.AuthorID // where (book.Name.Contains(searchSrring) // || book.Genre.Name.Contains(searchSrring) // || author.FirstName.Contains(searchSrring) // || author.LastName.Contains(searchSrring)) // select book).Distinct(); List <BookDM> result = new List <BookDM>(); foreach (Book b in bookQuery) { List <AuthorDM> authorList = new List <AuthorDM>(); var authorQuery = authors.Where(a => a.BookAuthors.Any(ba => ba.BookID == b.BookID)); foreach (Author a in authorQuery) { authorList.Add(new AuthorDM { AuthorID = a.AuthorID, FirstName = a.FirstName, LastName = a.LastName }); } BookDM tmp = new BookDM { BookID = b.BookID, Name = b.Name, GenreID = b.GenreID, PublishDate = b.PublishDate, Quantity = b.Quantity, Authors = authorList }; result.Add(tmp); } return(result); }
public void AddBook(BookDM bookDM) { UOW.Books.Create(new Book { Name = bookDM.Name, GenreID = bookDM.GenreID, PublishDate = bookDM.PublishDate, Quantity = bookDM.Quantity }); UOW.Save(); }
public ActionResult DeleteConfirmed(int id) { BookDM bookDM = service.GetBook(Convert.ToInt32(id)); bool flag = service.DeleteBook(bookDM); if (flag) { return(RedirectToAction("Index")); } else { return(RedirectToAction("DeleteError", new { id = id })); } }
public void DeleteAuthorFromBook(BookDM bookDM, AuthorDM authorDM) { try { UOW.BookAuthors.Delete(UOW.BookAuthors.Find(ba => ba.BookID == bookDM.BookID && ba.AuthorID == authorDM.AuthorID).First().BookAuthorID); UOW.Save(); } catch (Exception ex) { throw new DataException(ex.Message, "Error in deleting Author from Book"); } }
public void AddAuthorToBook(BookDM bookDM, AuthorDM authorDM) { try { UOW.BookAuthors.Create(new BookAuthor { BookID = bookDM.BookID, AuthorID = authorDM.AuthorID }); UOW.Save(); } catch (Exception ex) { throw new DataException(ex.Message, "Error in adding Author to Book"); } }
public BookView(BookDM book) { BookID = book.BookID; Name = book.Name; GenreID = book.GenreID; PublishDate = book.PublishDate; Quantity = book.Quantity; List <AuthorView> MyAuthors = new List <AuthorView>(); if (book.Authors != null) { foreach (var a in book.Authors) { MyAuthors.Add(new AuthorView(a)); } } Authors = MyAuthors; }
public void UpdateBook(BookDM bookDM) { try { UOW.Books.Update(new Book { BookID = bookDM.BookID, Name = bookDM.Name, GenreID = bookDM.GenreID, PublishDate = bookDM.PublishDate, Quantity = bookDM.Quantity }); UOW.Save(); } catch (Exception ex) { throw new DataException(ex.Message, "Error in updating Book"); } }
public int AddBookToUser(UserDM userDM, BookDM bookDM) { try { if (UOW.Books.Get(bookDM.BookID).Quantity <= 0) { return(1); } if (UOW.Users.Get(userDM.UserID).Quantity >= 10) { return(2); } Book book = UOW.Books.Get(bookDM.BookID); book.Quantity--; UOW.Books.Update(book); UOW.Save(); User user = UOW.Users.Get(userDM.UserID); user.Quantity++; UOW.Users.Update(user); UOW.Save(); UOW.BookUsers.Create(new BookUser { BookID = bookDM.BookID, UserID = userDM.UserID }); UOW.Save(); return(0); } catch (Exception ex) { throw new DataException(ex.Message, "Error in adding Book to User"); } }
public void DeleteBookFromUser(UserDM userDM, BookDM bookDM) { try { Book book = UOW.Books.Get(bookDM.BookID); book.Quantity++; UOW.Books.Update(book); UOW.Save(); User user = UOW.Users.Get(userDM.UserID); user.Quantity--; UOW.Users.Update(user); UOW.Save(); UOW.BookUsers.Delete(UOW.BookUsers.Find(bu => bu.BookID == bookDM.BookID && bu.UserID == userDM.UserID).First().BookUserID); UOW.Save(); } catch (Exception ex) { throw new DataException(ex.Message, "Error in deleting Book from User"); } }