コード例 #1
0
        public ActionResult Index()
        {
            var db = new ThuVienDb();

            ViewBag.BookCount       = db.Books.Count();
            ViewBag.RentBookCount   = db.Tickets.Where(t => t.DateReturned == null).SelectMany(x => x.Books).Distinct().Count();
            ViewBag.OpenTicketCount = db.Tickets.Count(t => t.DateReturned == null);
            var tmpDate      = DateTime.Now.Subtract(new TimeSpan(14, 0, 0, 0));
            var rentBookData = new Dictionary <DateTime, int>();

            foreach (var ticket in db.Tickets.Where(t => t.DateCreated >= tmpDate))
            {
                if (!rentBookData.ContainsKey(ticket.DateCreated))
                {
                    rentBookData[ticket.DateCreated] = 0;
                }
                rentBookData[ticket.DateCreated] += ticket.Books.Count;
            }
            var returnBookData = new Dictionary <DateTime, int>();

            foreach (var ticket in db.Tickets.Where(t => t.DateReturned >= tmpDate))
            {
                if (!returnBookData.ContainsKey(ticket.DateReturned.Value))
                {
                    returnBookData[ticket.DateReturned.Value] = 0;
                }
                returnBookData[ticket.DateReturned.Value] += ticket.Books.Count;
            }
            ViewBag.RentData   = rentBookData.Select(x => new KeyValuePair <string, int>(x.Key.ToString("d"), x.Value)).Reverse();
            ViewBag.ReturnData = returnBookData.Select(x => new KeyValuePair <string, int>(x.Key.ToString("d"), x.Value)).Reverse();
            return(View());
        }
コード例 #2
0
        public ActionResult Book(int id)
        {
            var db = new ThuVienDb();

            ViewBag.Book = db.Books.Single(x => x.Id == id);
            return(View());
        }
コード例 #3
0
        public ActionResult Cart()
        {
            var db       = new ThuVienDb();
            var userList = (List <int>)Session["userList"] ?? (List <int>)(Session["userList"] = new List <int>());

            ViewBag.Books = db.Books.Where(x => userList.Contains(x.Id)).ToList();
            return(View());
        }
コード例 #4
0
 protected override void Initialize(RequestContext requestContext)
 {
     base.Initialize(requestContext);
     if (Session["readerId"] != null)
     {
         var db = new ThuVienDb();
         var id = (int)Session["readerId"];
         ViewBag.Username = db.Readers.Single(x => x.Id == id).Username;
     }
 }
コード例 #5
0
        public ActionResult Index(int page = 1, string book = null)
        {
            var db = new ThuVienDb();
            IQueryable <Book> src = db.Books;

            if (book != null)
            {
                src = src.Where(b => b.Name.Contains(book));
            }
            ViewBag.PageCount   = (src.Count() + 19) / 20;
            ViewBag.CurrentPage = page;
            ViewBag.Books       = src.SortBy("Id").Skip((page - 1) * 20).Take(20);
            return(View());
        }
コード例 #6
0
        public ActionResult Login(string Username, string Password)
        {
            var db     = new ThuVienDb();
            var reader = db.Readers.SingleOrDefault(x => x.Username == Username && x.Password == Password);

            if (reader == null)
            {
                ModelState.AddModelError("", "Lỗi đăng nhập!");
                return(View());
            }
            else
            {
                Session["readerId"] = reader.Id;
                return(RedirectToAction("Index"));
            }
        }
コード例 #7
0
        public ActionResult Login(User user)
        {
            var db = new ThuVienDb();

            try
            {
                user           = db.Users.First(x => x.Username == user.Username && x.Password == user.Password);
                Session["uid"] = user.Id;
                return(RedirectToAction("Index", "Dashboard"));
            }
            catch (Exception)
            {
                ModelState.AddModelError("", "Tài khoản hoặc mật khẩu không chính xác");
                return(View());
            }
        }
コード例 #8
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            // Auto login first user
            //if (filterContext.HttpContext.IsDebuggingEnabled)
            //    using (var db = new ThuVienDb())
            //    {
            //        filterContext.HttpContext.Session["uid"] = db.Users.First().Id;
            //    }

            if (filterContext.HttpContext.Session["uid"] == null)
            {
                filterContext.Result = new RedirectResult("~/Account/Login");
                return;
            }
            using (var db = new ThuVienDb())
            {
                var uid = (int)filterContext.HttpContext.Session["uid"];
                filterContext.Controller.ViewBag.User = db.Users.First(x => x.Id == uid);
            }
        }
コード例 #9
0
        public ActionResult CreateTicket()
        {
            if (Session["readerId"] == null)
            {
                return(RedirectToAction("Login"));
            }
            var db       = new ThuVienDb();
            var userList = (List <int>)Session["userList"] ?? (List <int>)(Session["userList"] = new List <int>());
            var ticket   = new Ticket
            {
                DateCreated = DateTime.Now,
                ReaderId    = (int)Session["readerId"]
            };

            foreach (var bookId in userList)
            {
                ticket.Books.Add(db.Books.Single(x => x.Id == bookId));
            }
            db.Tickets.Add(ticket);
            db.SaveChanges();
            Session.Remove("userList");
            ViewBag.Ticket = ticket;
            return(View());
        }