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 UpdateButton_Click(object sender, EventArgs e)
 {
     try
     {
         memID = (int)MemIDNumericUpDown.Value;
         Members m = context.Members.Where(x => x.MemberID == memID).First();
         m.MemberName  = MemberNameTextBox.Text;
         m.PhoneNumber = PhoneMaskedTextBox.Text;
         m.Address     = AddressTextBox.Text;
         context.SaveChanges();
         MemberToolStripStatusLabel.Text = "Update Successful for Member ID: " + memID.ToString();
     }
     catch (InvalidOperationException)
     {
         MessageBox.Show("Member record is not found. Please input a correct Member ID.");
         ReturnEmptyValue();
     }
 }
        private void Update_Click(object sender, EventArgs e)
        {
            var          BID = from x in context.Books where x.BookID == BookRetrieveNumeric.Value select x;
            List <Books> b   = BID.ToList <Books>();

            if (b.Count != 0)
            {
                Books c = context.Books.Where(x => x.BookID == BookRetrieveNumeric.Value).First();
                c.BookName      = Book_NameBox.Text;
                c.Author        = AuthorBox.Text;
                c.Publisher     = publisherBox.Text;
                c.Edition       = EditionBox.Text;
                c.Category      = CategoryBox.Text;
                c.TotalQuantity = (int)Total_QuantityNumeric.Value;
                context.SaveChanges();
                MessageBox.Show("Update succeed");
            }
            else
            {
                MessageBox.Show("BookID does not exist. Please re-enter.");
            }
        }
        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 = "";
            }
        }