Example #1
0
        protected void returnBookBtn_Click(object sender, EventArgs e)
        {
            if (userListBorBook.SelectedValue != null)
            {
                string username = listBoxUser.SelectedValue;
                var    user     = db.Users.FirstOrDefault(u => u.userName == username);
                if (user == null)
                {
                    return;
                }
                int     BBid = int.Parse(userListBorBook.SelectedValue);
                BorBook BB   = db.BorBooks.FirstOrDefault(b => b.id == BBid);
                if (BB == null)
                {
                    return;
                }
                user.borBooks.Remove(BB);

                BB.state = 0;
                BB.User  = null;

                // Kiểm tra borBook ở location nào
                if (BB.LocationId != curAdmin.LocationId)
                {
                    // Người dùng trả sách ở nơi khác
                    db.Locations.FirstOrDefault(lc => lc.id == BB.LocationId).BorBooks.Remove(BB);
                    db.Locations.FirstOrDefault(lc => lc.id == curAdmin.LocationId).BorBooks.Add(BB);
                }

                db.SaveChanges();
                returnBookBtn.Enabled = false;
                //load lai danh sách sách người dùng mượn
                if (user.borBooks.Count > 0 && user.borBooks != null)
                {
                    userListBorBook.DataSource = user.borBooks.Select(
                        bb => new BorBookItem
                    {
                        id   = bb.id,
                        name = db.Books.FirstOrDefault(b => b.bookId == bb.BookId).bookName,
                    }
                        ).ToList();
                }
                else
                {
                    userListBorBook.DataSource = new List <BorBookItem>();
                }

                userListBorBook.DataBind();
            }
            reloadUserInfo();
        }
Example #2
0
        // PreView Book trong ***LISTUSER ***
        protected void userListBorBook_SelectedIndexChanged(object sender, EventArgs e)
        {
            returnBookBtn.Enabled = true;
            if (userListBorBook.SelectedValue == "")
            {
                return;
            }
            int idBorBook = int.Parse(userListBorBook.SelectedValue);
            // chắc chắn có
            BorBook borBook = db.BorBooks.FirstOrDefault(bb => bb.id == idBorBook);
            Book    book    = db.Books.FirstOrDefault(b => b.bookId == borBook.BookId);

            previewUserBookPic.ImageUrl = "Images/" + book.imagePath;
            reloadUserInfo();
            // Load lại danh sách "sách đang mượn" của người dùng
        }
Example #3
0
        protected void borrowBtn_Click(object sender, EventArgs e)
        {
            List <String> message = new List <string>();

            if (listBorUser.SelectedValue == "")
            {
                message.Add("Hãy chọn người mượn!");
                borrowMessages.DataSource = message;
                borrowMessages.DataBind();
                return;
            }
            if (listBorBook.SelectedValue == "")
            {
                message.Add("Hãy chọn sách mượn!");
                borrowMessages.DataSource = message;
                borrowMessages.DataBind();
                return;
            }

            string userName = listBorUser.SelectedValue;

            int bookId = int.Parse(listBorBook.SelectedValue);

            User user    = db.Users.FirstOrDefault(u => u.userName == userName);
            Book curBook = db.Books.FirstOrDefault(book => book.bookId == bookId);

            // Kiểm tra đã mượn sách này hay chưa !
            if (user.borBooks.Any(bb => bb.BookId == curBook.bookId))
            {
                message.Add("Bạn đã mượn sách này rồi !");
            }

            // kiểm  tra số lượng sách người dùng đang mượn !
            int borrowedBook = user.borBooks.Count(bb => bb.state == 2);

            if (borrowedBook == Book.limitBorBook)
            {
                message.Add("Bạn đã mượn " + borrowedBook + "quyển sách, hãy trả sách để có thể mượn thêm sách !");
            }

            //danh sách sách còn lại của sách này
            // chỉ được tính sách ở location của Admin đang lưu trữ

            List <BorBook> avableBorBook = db.BorBooks
                                           .Where(bb => bb.state == 0
                                                  &&
                                                  bb.BookId == curBook.bookId
                                                  &&
                                                  bb.Location.id == curAdmin.Location.id
                                                  ).ToList();

            // nếu nó rỗng tức không còn loại sách này
            if (avableBorBook.Count == 0)
            {
                message.Add("Xin lỗi sách này đã hết !");
            }

            // trường hợp người dùng đã đặt trước ?? th đặc biệt
            BorBook tmp = user.borBooks.FirstOrDefault(bb => bb.BookId == bookId && bb.state == 1);

            if (tmp != null)
            {
                // không cần xét dk số lượng sách đã mượn vì, k tăng thêm chỉ chỉnh sách's state lên 2
                message.Clear();
                tmp.state = 2;
                int day = int.Parse(returnDate.SelectedValue);
                tmp.borrowDate = DateTime.Now;
                tmp.returnDate = tmp.borrowDate.AddDays(day * 7);

                db.SaveChanges();

                message.Add("[Người dùng đã mượn trước], trạng thái sách chuyển thành 'đang được mượn' !");

                // cập nhật lại danh sách book
                reloadBorBook(ref user);

                borrowMessages.DataSource = message;
                borrowMessages.DataBind();
                return;
            }

            // Nếu không gặp 2 lỗi trên cho phép mượn
            if (message.Count == 0)
            {
                BorBook BB = avableBorBook[0];

                //BB = db.BorBooks.FirstOrDefault(bb => bb.id == BB.id);

                int day = int.Parse(returnDate.SelectedValue);
                BB.borrowDate = DateTime.Now;
                BB.returnDate = BB.borrowDate.AddDays(day * 7);
                // set state =3
                BB.state = 2;
                BB.Book  = curBook;
                user.borBooks.Add(BB);
                message.Add("Sách được mượn bởi tài khoản admin, trạng thái sách chuyển thành 'đang được mượn' !");
                db.SaveChanges();
                reloadBorBook(ref user);
            }
            // Gán và hiển thị lỗi - tin nhắn cho người dùng
            borrowMessages.DataSource = message;
            borrowMessages.DataBind();
        }
Example #4
0
        protected void borrowBtn_Click(object sender, EventArgs e)
        {
            List <String> message = new List <string>();

            // Kiểm tra đăng nhập
            curUser = (User)Session["user"];

            if (curUser == null)
            {
                message.Add("Bạn cần đăng nhập trước khi đặt mượn sách !");
                errorBorrow.DataSource = message;
                errorBorrow.DataBind();
                return;
            }

            // không thể thao thác thêm borBook vào User được tạo ra từ 2 context khác nhau
            // bắt buộc phải dùng User được lấy ra từ db ở hiện tại
            // cũng k thể dùng Session lưu context , như vậy context sẽ k được cập nhật
            // Tốt hơn nên tạo Context mới ở những thao tác ntn
            db      = new LibraryContext();
            curUser = db.Users.FirstOrDefault(user => user.userName == curUser.userName);

            // Kiểm tra xem người dùng đã đặt sách này chưa
            BorBook borBook = curUser.borBooks.FirstOrDefault(bb => bb.BookId == curBook.bookId);

            // tức người dùng có đặt/mượn sách rồi
            if (borBook != null)
            {
                if (borBook.state == 1)
                {
                    // HỦY ĐẶT
                    // nếu đã đặt thì hủy đặt
                    curUser.borBooks.Remove(borBook);
                    borBook.state = 0;
                    db.SaveChanges();
                    borrowBtn.Text = "Đặt mượn sách này";
                    borrowBtn.Style.Add("background-color", "");
                    locationLabel.Visible = true;
                    listLocation.Visible  = true;
                    //red!important;
                    borrowBtn.DataBind();

                    // ***  cập nhật CurBook vì borBook ở trên vừa thay đổi - borBook là BorBook của curBook
                    curBook = db.Books.FirstOrDefault(book => book.bookId == curBook.bookId);

                    parseLocation();
                    updateBorBook();

                    message.Add("Hủy đặt sách thành công !");
                    errorBorrow.DataSource = message;
                    errorBorrow.DataBind();
                    locationLabel.Visible = true;
                    listLocation.Visible  = true;
                    return;
                }
                ;

                // Kiểm tra người dùng đã mượn sách này hay chưa, hoặc đã đặt trước sách này hay chưa
                // never happen // pageload got it
                if (borBook.state == 2)
                {
                    message.Add("Bạn đã mượn trước sách này rồi !");
                }
            }



            if (listLocation.SelectedIndex == -1)
            {
                message.Add("Hãy chọn địa điểm!");
                errorBorrow.DataSource = message;
                errorBorrow.DataBind();
                return;
            }


            int lcId = int.Parse(listLocation.SelectedValue);

            // Kiểm tra số lượng sách người dùng đã đặt & mượn
            if (curUser.borBooks.Count == Book.limitBorBook)
            {
                message.Add("Bạn đã đặt/mượn giới hạn " + Book.limitBorBook + " sách !");
                errorBorrow.DataSource = message;
                errorBorrow.DataBind();
            }
            else
            {
                // Kiểm tra số lượng sách còn lại
                BorBook tmp = db.BorBooks.FirstOrDefault(bb => bb.BookId == curBook.bookId && bb.state == 0 && bb.LocationId == lcId);

                if (tmp != null)
                {
                    // nếu có sách cho người dùng mượn và chuyển sách
                    tmp.User  = curUser;
                    tmp.state = 1;
                    curUser.borBooks.Add(tmp);
                    message.Add("Đặt mượn trước thành công!");
                    db.SaveChanges();
                    locationLabel.Visible = false;
                    listLocation.Visible  = false;

                    // ***  cập nhật CurBook vì borBook ở trên vừa thay đổi - borBook là BorBook của curBook
                    curBook = db.Books.FirstOrDefault(book => book.bookId == curBook.bookId);

                    // ĐẶT MƯỢN THÀNH CÔNG => Cập nhật danh sách BorBook

                    updateBorBook();
                    parseLocation();

                    borrowBtn.Text = "Hủy đặt trước";
                    borrowBtn.Style.Add("background-color", "red !important");
                    //red!important;
                    borrowBtn.DataBind();
                }
                else
                {
                    message.Add("Xin lỗi, sách này đã được mượn hết!");
                }
            }

            errorBorrow.DataSource = message;
            errorBorrow.DataBind();
        }