public ActionResult ReserveBook(int?id)
        {
            var book = db.BookTables.Find(id);

            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return(RedirectToAction("Login", "Home"));
            }
            int userid         = Convert.ToInt32(Convert.ToString(Session["UserID"]));
            int employeeid     = Convert.ToInt32(Convert.ToString(Session["EmployeeID"]));
            var issueBookTable = new IssueBookTable()
            {
                BookID            = book.BookID,
                Description       = "Rezerwacja użytkownika",
                EmployeeID        = employeeid,
                IssueCopies       = 1,
                IssueDate         = DateTime.Now,
                ReturnDate        = DateTime.Now.AddDays(14),
                Status            = false,
                ReserveNoOfCopies = true,
                UserID            = userid
            };

            issueBookTable.UserID = userid;
            if (ModelState.IsValid)
            {
                var find       = db.IssueBookTables.Where(b => b.ReturnDate >= DateTime.Now && b.BookID == issueBookTable.BookID && (b.Status == true || b.ReserveNoOfCopies == true)).ToList();
                int issuebooks = 0;
                foreach (var item in find)
                {
                    issuebooks = issuebooks + item.IssueCopies;
                }

                var stockbooks = db.BookTables.Where(b => b.BookID == issueBookTable.BookID).FirstOrDefault();
                if ((issuebooks == stockbooks.TotalCopies) || (issuebooks + issueBookTable.IssueCopies > stockbooks.TotalCopies))
                {
                    Message = "Brak książek na stanie!";
                    return(RedirectToAction("Index"));
                }


                db.IssueBookTables.Add(issueBookTable);
                db.SaveChanges();
                Message = "Książka wypożyczona pomyślnie!";
                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Index"));
        }
        // GET: IssueBookTables/Details/5
        public ActionResult Details(int?id)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return(RedirectToAction("Login", "Home"));
            }
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            IssueBookTable issueBookTable = db.IssueBookTables.Find(id);

            if (issueBookTable == null)
            {
                return(HttpNotFound());
            }
            return(View(issueBookTable));
        }
        public ActionResult Create(IssueBookTable issueBookTable)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return(RedirectToAction("Login", "Home"));
            }
            int userid = Convert.ToInt32(Convert.ToString(Session["UserID"]));

            issueBookTable.UserID = userid;
            if (ModelState.IsValid)
            {
                var find       = db.IssueBookTables.Where(b => b.ReturnDate >= DateTime.Now && b.BookID == issueBookTable.BookID && (b.Status == true || b.ReserveNoOfCopies == true)).ToList();
                int issuebooks = 0;
                foreach (var item in find)
                {
                    issuebooks = issuebooks + item.IssueCopies;
                }

                var stockbooks = db.BookTables.Where(b => b.BookID == issueBookTable.BookID).FirstOrDefault();
                if ((issuebooks == stockbooks.TotalCopies) || (issuebooks + issueBookTable.IssueCopies > stockbooks.TotalCopies))
                {
                    ViewBag.Message = "Brak książek na stanie!";
                    return(View(issueBookTable));
                }


                db.IssueBookTables.Add(issueBookTable);
                db.SaveChanges();
                ViewBag.Message = "Książka wypożyczona pomyślnie!";
                return(RedirectToAction("IssueBooks"));
            }

            ViewBag.BookID     = new SelectList(db.BookTables, "BookID", "BookTitle", issueBookTable.BookID);
            ViewBag.EmployeeID = new SelectList(db.EmployeeTables, "EmployeeID", "FullName", issueBookTable.EmployeeID);
            ViewBag.UserID     = new SelectList(db.UserTables, "UserID", "UserName", issueBookTable.UserID);
            return(View(issueBookTable));
        }
        public ActionResult Create(IssueBookTable issueBookTable)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return(RedirectToAction("Login", "Home"));
            }
            int userid = Convert.ToInt32(Convert.ToString(Session["UserID"]));

            issueBookTable.UserID = userid;
            if (ModelState.IsValid)
            {
                var find      = db.IssueBookTables.Where(b => b.ReturnDate >= DateTime.Now && b.BookID == issueBookTable.BookID && (b.Status == true || b.ReservedNoOfCopies == true)).ToList();
                int issueBook = 0;
                foreach (var item in find)
                {
                    issueBook = issueBook + item.IssueCopies;
                }
                var stockBook = db.BookTables.Where(b => b.BookID == issueBook).FirstOrDefault();
                if ((issueBook == stockBook.NoOfCopies) || (issueBook + issueBookTable.IssueCopies > stockBook.NoOfCopies))
                {
                    ViewBag.Message = "Stock is Empety !";
                    return(View(issueBookTable));
                }


                db.IssueBookTables.Add(issueBookTable);
                db.SaveChanges();
                ViewBag.Message = "Book Is Issue Successfully !";
                return(RedirectToAction("Index"));
            }

            ViewBag.IssueBookID = new SelectList(db.BookTables, "BookID", "BookType", issueBookTable.IssueBookID);
            ViewBag.EmployeeID  = new SelectList(db.EmployeeTables, "EmployeeID", "FullName", issueBookTable.EmployeeID);
            ViewBag.UserID      = new SelectList(db.UserTables, "UserID", "UserName", issueBookTable.UserID);
            return(View(issueBookTable));
        }