Beispiel #1
0
        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");
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public void AddBook(BookDM bookDM)
        {
            UOW.Books.Create(new Book
            {
                Name        = bookDM.Name,
                GenreID     = bookDM.GenreID,
                PublishDate = bookDM.PublishDate,
                Quantity    = bookDM.Quantity
            });

            UOW.Save();
        }
Beispiel #4
0
        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 }));
            }
        }
Beispiel #5
0
        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");
            }
        }
Beispiel #6
0
        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");
            }
        }
Beispiel #7
0
        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;
        }
Beispiel #8
0
        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");
            }
        }
Beispiel #9
0
        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");
            }
        }
Beispiel #10
0
        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");
            }
        }