public Boolean bookReturnedUpdate(Issue_Detail issue)
        {
            BookController bookController = new BookController();
            int            bookID         = (int)issue.book_id;
            Book_Detail    book           = bookController.findByBookID(bookID);
            int            noOfCopies     = (int)book.no_of_copies;

            book.no_of_copies = ++noOfCopies;

            Console.WriteLine("Issue ID" + issue.issue_id);
            Boolean status = false;

            try
            {
                using (var db = new ModelDB())
                {
                    bookController.updateBook(book);

                    var entry = db.Entry(issue);
                    entry.State = EntityState.Modified;
                    db.SaveChanges();

                    status = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Book return update error " + ex.InnerException);
            }
            return(status);
        }
        public Book_Detail findByBookID(int bookID)
        {
            Book_Detail bookDetail = null;

            try
            {
                using (var db = new ModelDB())
                {
                    bookDetail = db.Book_Detail.Find(bookID);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("find book by id " + ex.InnerException);
            }
            return(bookDetail);
        }
        public Book_Detail findByISBN(string isbn)
        {
            Book_Detail bookDetail = null;

            try
            {
                using (var db = new ModelDB())
                {
                    bookDetail = db.Book_Detail.Find(isbn);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException);
            }
            return(bookDetail);
        }
        public Boolean addBook(Book_Detail book)
        {
            Boolean status = false;

            try
            {
                using (var db = new ModelDB())
                {
                    db.Book_Detail.Add(book);
                    db.SaveChanges();
                    status = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException);
            }
            return(status);
        }
        public Boolean updateBook(Book_Detail book)
        {
            Boolean status = false;

            try
            {
                using (var db = new ModelDB())
                {
                    Console.WriteLine("Book detail updated");
                    db.Book_Detail.AddOrUpdate(book);
                    db.SaveChanges();
                    status = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Update book problem " + ex.InnerException);
            }
            return(status);
        }
        public Boolean deletebyBookID(int id)
        {
            Boolean status = false;

            try {
                using (var db = new ModelDB())
                {
                    Book_Detail bookdetail = db.Book_Detail.First(b => b.book_id == id);

                    db.Book_Detail.Remove(bookdetail);
                    db.SaveChanges();
                    status = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("delete book " + ex.InnerException);
            }
            return(status);
        }
        public Boolean issueBook(Book_Detail book, Member_Detail member, DateTime issueDate, DateTime retrunDate)
        {
            Issue_Detail issueDetail = new Issue_Detail();

            issueDetail.book_id   = book.book_id;
            issueDetail.member_id = member.member_id;

            int copies = (int)book.no_of_copies;

            Console.WriteLine("Number of copies now" + copies);
            copies--;
            book.no_of_copies = copies;

            issueDetail.issue_date = issueDate;
            issueDetail.due_date   = retrunDate;

            Console.WriteLine("issue book contoller called issue book" + issueDetail);

            Boolean status = false;

            try
            {
                using (var db = new ModelDB())
                {
                    db.Issue_Detail.Add(issueDetail);
                    db.SaveChanges();
                    status = true;

                    BookController bookController = new BookController();
                    bookController.updateBook(book);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("issue error " + ex.InnerException);
            }
            return(status);
        }