private void button2_Click(object sender, EventArgs e)
        {
            BooksSearchList a = new BooksSearchList();
            DialogResult    b = a.ShowDialog();

            if (b == DialogResult.OK)
            {
                Book_NameBox.Text          = a.Book_Name1;
                AuthorBox.Text             = a.Author1;
                publisherBox.Text          = a.Publisher1;
                EditionBox.Text            = a.Edition1;
                CategoryBox.Text           = a.Category1;
                Total_QuantityBox.Text     = a.Total_Quantity1;
                Number_BorrowedBox.Text    = a.Number_Borrowed1;
                Retrieve_BookNumeric.Value = a.Book_ID1;
                if (Total_QuantityBox.Text == Number_BorrowedBox.Text)
                {
                    IssueReturn c = context.IssueReturn.Where(x => x.BookID == Retrieve_BookNumeric.Value).OrderBy(x => x.DateExpiry).First();
                    Can_Borrow_DateBox.Text = c.DateExpiry.ToLongDateString();
                }
                else
                {
                    Can_Borrow_DateBox.Text = "now";
                }
            }
        }
        private void btn_iss_book_Click(object sender, EventArgs e)
        {
            try
            {
                int     memID = Convert.ToInt32(txtmemid.Text);
                Members m     = context.Members.Where(x => x.MemberID == memID).First();
                try
                {
                    int   bookID = Convert.ToInt32(txtbookid.Text);
                    Books b      = context.Books.Where(x => x.BookID == bookID).First();

                    if (b.TotalQuantity > b.NumberBorrowed)
                    {
                        if (dateTimePicker1.Value.Date > DateTime.Now.Date)
                        {
                            using (TransactionScope ts = new TransactionScope())
                            {
                                IssueReturn ir = new IssueReturn();
                                ir.MemberID   = memID;
                                ir.BookID     = bookID;
                                ir.DateIssue  = DateTime.Now.Date;
                                ir.DateExpiry = dateTimePicker1.Value.Date;
                                ir.Remarks    = txtremk.Text;
                                ir.LoanStatus = "OUT";
                                context.IssueReturn.Add(ir);

                                b.NumberBorrowed += 1;

                                m.NumberOfBooksBorrowed += 1;

                                context.SaveChanges();
                                MessageBox.Show("Issue successful.");

                                IssueDateTextBox.Text      = ir.DateIssue.ToShortDateString();
                                toolStripStatusLabel2.Text = "Transaction ID: " + ir.TransactionID.ToString();

                                ts.Complete();
                            }
                        }
                        else
                        {
                            MessageBox.Show("Expiry Date is invalid.");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Book is not available.");
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Please input correct Book ID.");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Please input correct Member ID.");
            }
        }
        private void btn_ret_book_Click(object sender, EventArgs e)
        {
            try
            {
                int         tranID = Convert.ToInt32(TransIDnumericUpDown.Value);
                IssueReturn ir     = context.IssueReturn.Where(x => x.TransactionID == tranID).First();

                txtmemid1.Text    = ir.MemberID.ToString();
                txtbookid1.Text   = ir.BookID.ToString();
                txtbooktile1.Text = ir.Book.BookName;

                if (ir.Book.NumberBorrowed > 0 && ir.Member.NumberOfBooksBorrowed > 0)
                {
                    using (TransactionScope ts = new TransactionScope())
                    {
                        ir.DateReturn = DateTime.Now.Date;
                        ir.LoanStatus = "IN";

                        ir.Book.NumberBorrowed -= 1;

                        ir.Member.NumberOfBooksBorrowed -= 1;

                        context.SaveChanges();

                        MessageBox.Show("Return successful.");

                        ReturnDateTextBox.Text = ir.DateReturn.Value.ToShortDateString();

                        ts.Complete();
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Please input correct Transaction ID.");
                txtmemid1.Text         = "";
                txtbookid1.Text        = "";
                txtbooktile1.Text      = "";
                ReturnDateTextBox.Text = "";
            }
        }
        private void Retrieve_Book_Click(object sender, EventArgs e)
        {
            var          BID = from x in context.Books where x.BookID == Retrieve_BookNumeric.Value select x;
            List <Books> b   = BID.ToList <Books>();

            if (b.Count != 0)
            {
                Books c = context.Books.Where(x => x.BookID == Retrieve_BookNumeric.Value).First();
                Book_NameBox.Text       = c.BookName;
                AuthorBox.Text          = c.Author;
                publisherBox.Text       = c.Publisher;
                EditionBox.Text         = c.Edition;
                CategoryBox.Text        = c.Category;
                Total_QuantityBox.Text  = c.TotalQuantity.ToString();
                Number_BorrowedBox.Text = c.NumberBorrowed.ToString();
                if (Total_QuantityBox.Text == Number_BorrowedBox.Text)
                {
                    IssueReturn q = context.IssueReturn.Where(x => x.BookID == Retrieve_BookNumeric.Value).OrderBy(x => x.DateExpiry).First();
                    Can_Borrow_DateBox.Text = q.DateExpiry.ToLongDateString();
                }
                else
                {
                    Can_Borrow_DateBox.Text = "Now";
                }
            }
            else
            {
                Book_NameBox.Text       = "";
                AuthorBox.Text          = "";
                publisherBox.Text       = "";
                EditionBox.Text         = "";
                CategoryBox.Text        = "";
                Total_QuantityBox.Text  = "";
                Number_BorrowedBox.Text = "";
                Can_Borrow_DateBox.Text = "";
                MessageBox.Show("Please re-enter BookID.");
            }
        }